2015-03-26 4 views
1

Я только начинаю в классах оснований microsoft, и в своем приветственном мире приложение, используя новый мастер проекта, я вижу ссылку на m_pMainWnd-> ShowWindow (SW_SHOW) и m_pMainWnd-> UpdateWindow() в Метод InitInstance(). Я понимаю, что m_pMainWnd является указателем на главное окно приложения. моя проблема в том, что я вижу только ее объявление в файле afxwin.h, но не в его создании. Есть что-то, чего я не хватает, и, пожалуйста, просто исправьте меня, если я ошибаюсь. Я новичок программист.Где m_pMainWnd создается экземпляр

ответ

3

Главное окно кадра конкретизируется в InitInstance() метод приложения (CWinApp происхождения) класс просто так:

CSingleDocTemplate* pDocTemplate; 
pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME, 
    RUNTIME_CLASS(CNetworkManagerDoc), 
    RUNTIME_CLASS(CMainFrame),  // main SDI frame window 
    RUNTIME_CLASS(CNetworkManagerView)); 
if (!pDocTemplate) 
    return FALSE; 
AddDocTemplate(pDocTemplate); 
+0

поэтому включены Макровызов RUNTIME_CLASS (CNetworkManagerView) будет создать экземпляр m_pMainWnd со ссылкой на класс CNetworkManagerView? – Steve

+0

Макрос RUNTIME_CLASS используется для вызова CRuntimeClass :: CreateObject() для создания объекта. Tricky. После создания документа, рамки и представления создаются таким образом, что они являются , инициализированными каркасом. –

+0

Понял, и спасибо за вашу помощь. Из-за этого я не смог продолжить учебу со вчерашнего дня. – Steve

Смежные вопросы