Программирование на языке MFC

Мой второй блог в серии программирования

Класс CMDIChildWnd


Мне бы хотелось, чтобы вы вспомнили, что происходит при по­лучении окном класса CMDIChildWnd сообщения WM_CREATE. Во время работы этого метода вызываются еще много других мето­дов, в том числе CFrameWnd::CreateView(). Именно при работе этого метода и происходит вызов метода CreateObject() для объекта клас­са окна представления. Естественно, метод CreateObject() вызы­вает конструктор объекта окна представления. И, разумеется, вы­зываются строго по порядку конструкторы классов, от которых унас­ледован наш объект. Если мы в качестве окна приложения исполь­зуем объект класса CEditView, то первым вызывается конструктор CEditView::CEditView(). Исходный код этого конструктора находит­ся в файде viewedit.cpp:

// pass a NULL style because dwStyleDefault stays for // backward compatibility

CEditView::CEditView() : CCtrlView(_T("EDIT"), NULL)

m_nTabStops = 8*4; // default 8 character positions m_hPrinterFont = NULL; m_hMirrorFont = NULL; m_pShadowBuffer = NULL; m_nShadowSize = 4);

}

Перед тем, как отработает этот конструктор, управление будет передано конструктору класса CCtrlView.

Исходный текст конструктора класса CCtrlView можно найти в файле viewcore.cpp:

CCtrlView::CCtrlView(LPCTSTR IpszClass, DWORD dwStyle) {

m_strClass = IpszClass;

m_dwDefaultStyle = dwStyle;

}

Похожие статьи: