Перейдем к конструктору CMainWnd при помощи Class View. Нажмем Properties (Свойства), если его у Вас нет нажмите клавишу F4. Посмотрите сначала, что выбран соответствующий класс (1), затем щелкните на Messages (Сообщения) (2), найдите при помощи прокрутки WM_PAINT и щелкните на выпадающий список (3), выберите OnPaint.
Более подробно о назначении этого сообщения смотрите раздел MFC: "Шаг 10 - Рисуем в окне". Тем самым мы добавили сообщение к классу CMainWnd. Отредактируем его:
void CMainWnd::OnPaint() { SetCursor(NULL); p_d3d_Device->Clear (0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB (color++, 0, 0), 0.0f, 0); p_d3d_Device->BeginScene (); p_d3d_Device->EndScene (); p_d3d_Device->Present (NULL, NULL, NULL, NULL); }
В класс CMainWnd в public объявите переменную:
int color;
Запускаем. Получили тоже самое, что и "Шаг 3 - События рамки окна", но средствами MFC. Сделаем полноэкранный режим. Для этого откроем конструктор класса CMainWnd:
CMainWnd::CMainWnd() { Create(NULL, APPNAME, // Создать окно программы WS_POPUP, rectDefault, NULL,NULL);
И укажем в ней WS_POPUP. Также перенесем объявление
D3DDISPLAYMODE d3ddm;
в класс окна CMainWnd в область private. В конструктор данного класса добавим строки после ZeroMemory:
d3dpp.BackBufferWidth = 1024; d3dpp.BackBufferHeight = 768; d3dpp.BackBufferCount = 3; d3dpp.FullScreen_RefreshRateInHz = d3ddm.RefreshRate;
Далее ставим false:
d3dpp.Windowed = false;
и
d3dpp.BackBufferFormat = d3ddm.Format;
Добавим сообщение на двойной клик мышкой на закрытие окна, иначе нам не выйти из него... Выбираем теперь не WM_PAINT, а:
И переходим к редактированию:
void CMainWnd::OnLButtonDblClk(UINT nFlags, CPoint point) { DestroyWindow(); // Уничтожить окно }
Запускаем и смотрим. Для выхода щелкните два раза на левую кнопку мышки.