我目前正在學習MFC庫,我注意到,在默認生成的應用程序由Visual Studio沒有分配給m_pMainWnd指針。所以我的問題是那個指針指向什麼?我也從一個教程,我發現最近做了一個例子,有在InitInstance函數創建一個對話框類的對象和它的地址被分配到m_pMainWnd指針:默認情況下m_pMainWnd指針指向的是什麼?
virtual BOOL InitInstance()
{
CWinApp::InitInstance();
GAME_FORM dlg; //dialog object
m_pMainWnd = &dlg; //dialog object set as main window
INT_PTR nResponse = dlg.DoModal();
}
當由應用程序嚮導創建MFC應用程序只有兩個在使用m_pMainWnd的整個解決方案中的行,這不是一個問題。那麼這個指針指向什麼?
BOOL CMFCTestyApp::InitInstance()
{
(...)
// The one and only window has been initialized, so show and update it
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
(...)
}
您的應用程序類繼承許多基類層。他們還擁有大量的代碼,以建立運行應用程序代碼的環境。 –
除非您非常熟悉Windows API(和C++),否則您將無法理解MFC。如果您真的想開始使用Windows編程,請從[Learn to Program for Windows in C++](https://msdn.microsoft.com/en-us/library/windows/desktop/ff381399.aspx)開始。 – IInspectable
'm_pMainWnd'默認爲'NULL'。你必須告訴MFC,在這種情況下'dlg'被用作你的主窗口。一些MFC類需要知道主窗口的位置。 –