

Программирование на языке MFC
Мой второй блог в серии программирования
Вполне очевидно, что этот метод используется для того, чтобы определить класс и стили окна, которое будет создаваться.
Сначала определяется класс окна. В том случае, если класс окна до сих пор не определен (и ТОЛЬКО в этом случае), то полю IpszClass присваивается значение _afxWndFrameOrView. Что находится в этой переменной, станет ясным после того, как мы взглянем на участок кода, находящийся в файле afximpl.h:
// special AFX window class name mangling
#ifndef _UNICODE #define _UNICODE_SUFFIX #else
#define _UNICODE_SUFFIX _TPu") #endif
#ifndef _DEBUG #define DEBUG SUFFIX
#else
#define _DEBUG_SUFFIX _T(M") #endif
#ifdef _AFXDLL #define _STATIC_SUFFIX #else
#define _STATIC_SUFFIX _T(^s") #endif
#define AFX_WNDCLASS(s) \ _TPAfx") _T(s) _T("42") _DEBUG_SUFFIX
#define AFX_WND #define AFX_WNDCONTROLBAR #define AFX_WNDMDIFRAME #define AFX_WNDFRAMEORVIEW #define AFX WNDOLECONTROL
STATIC SUFFIX UNICODE SUFFIX
AFX_WNDCLASS("Wnd") AFX_WNDCLASSrControlBar") AFX_WNDCLASS("MDIFrame") AFX_WNDCLASS("FrameOrView") AFX_WNDCLASSrOleControl")
С другой стороны, в файле wincore.cpp мы увидим:
const TCHAR _afxWnd[] = AFX_WND;
const TCHAR _afxWndControlBar[] = AFX_WNDCONTROLBAR; const TCHAR _afxWndMDIFrame[] = AFX_WNDMDIFRAME; const TCHAR _afxWndFrameOrView[] = AFX_WN D FRAME ORVIEW; const TCHAR _afxWnd01eControl[] = AFX_WNDOLECONTROL;
Исходя из этих фактов, а также зная, что в настоящий момент мы генерируем отладочную версию нашей программы, сделаем вывод о том, что классом создаваемого окна фрейма будет являться «AfxFrameOrView42d». В качестве упражнения я предлагаю читателю проверить правильность этого утверждения.
Определив класс и стили создаваемого окна фрейма, мы получили все необходимое для создания окна. Следовательно, никаких проблем создание окна фрейма вызвать не должно.
читать отзывы (0)
