MFC는 화면을 나눈 후 좌우 두 개의 대화상자, 즉 두 개의view 구역 관련 매개 변수로 나뉘어 설정한다.
1489 단어 MFC
2. 업데이트 데이터 () 함수는 클래스별로 호출할 수 없습니다.CmainFrame 클래스에서 왼쪽view 대상을 정의하고 이 대상을 통해 왼쪽view 함수를 호출합니다. 이 함수의 정의에 업데이트 데이터 ()가 포함되면 오류가 발생합니다.
해결 방법: 왼쪽view의 클래스에서 사용자 정의 메시지를 정의하고 메시지를 이용하여 업데이트 데이터 () 함수를 보냅니다. 코드는 다음과 같습니다.
//CVIEW_L.h :
#define WM_UPDATEDATA_L 10000+4 //10000 。
//CVIEW_L.h :
LRESULT OnUpdateData_L(WPARAM wParam,LPARAM lParam);// : 。
//CVIEW_L.cpp :
ON_MESSAGE(WM_UPDATEDATA_L, OnUpdateData_L)
// CVIEW_L.cpp :
LRESULT CView_L::OnUpdateData_L(WPARAMwParam, LPARAM lParam)
{
UpdateData(wParam);
return 0;
}
// , :
CMainFrame*pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CTianDiTongXun_CView*pViewRes=(CTianDiTongXun_CView*)pMF->m_wndSplitter.GetPane(0,0);
pViewRes->SendMessage(WM_UPDATEDATA,FALSE);
3. 다른 종류에서 함수를 호출할 때 메시지를 보내고 대상 호출을 정의하며 정적 함수 방법을 사용해서 각자의 단점을 분석한다.
(1) 정적 함수: 정적 함수는 그 중 사용하는 변수를 정적 변수로 요구하며, 고체 중간에 컨트롤 클래스의 변수를 포함할 경우 정적 변수로 바꿀 수 없으며, 이 방법을 사용할 수 없다.
(2) 클래스의 대상을 정의한다. 이 방법은 A의 함수에서 B 함수를 호출해도 사용할 수 있고 A 함수에서 A 함수 클래스의 공공 클래스 변수를 사용해도 정상적으로 사용할 수 있다.다만 A 함수에 타이머 SetTimer가 나타나면 이 방법을 이용하여 A 함수를 호출하면 오류가 발생합니다.
(3) 메시지 발송: 메시지를 보내는 데 타이머 함수를 호출할 수 없습니다.타이머의 Ontimer와 SerTimer 함수를 모두 A클래스에 정의하고 A클래스의 상응하는 함수에서 B클래스 함수를 호출하는 메시지를 보냅니다. 그러나 B클래스에 저장된 함수 결과의 변수를 정적 변수로 정의해야 합니다. 그렇지 않으면 값을 사용할 수 없습니다.
끝나다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MFC는 화면을 나눈 후 좌우 두 개의 대화상자, 즉 두 개의view 구역 관련 매개 변수로 나뉘어 설정한다.1. 모든 메뉴 막대 버튼을 CmainFrame 클래스로 정의하는 것이 좋습니다.메뉴 표시줄 단추를 다른view에 정의하고 다른view인터페이스를 클릭하면 해당 메뉴 항목이 비워지는 현상이 일어나지 않습니다.이 현상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.