MASM32 и OpenGL
Это не так сложно, как на самом деле

Полноэкранный режим

Для перехода в полноэкранный режим необходимо модифицировать файл создания окна и обработки событий opengl.asm. Убираем функцию определения положения окна на экране (окно теперь - во весь экран), в процедуру WinMain сразу после определения локальных переменных добавляем:

LOCAL hDesktopWnd :DWORD
LOCAL hDesktopDC :DWORD

invoke GetDesktopWindow
mov hDesktopWnd,eax

invoke GetDC,hDesktopWnd
mov hDesktopDC ,eax

invoke GetDeviceCaps,hDesktopDC, HORZRES
mov Wwd,eax

invoke GetDeviceCaps,hDesktopDC, VERTRES
mov Wht,eax

Слегка меняем параметры вызова функции создания окна (не будет рамки и кнопок):

invoke CreateWindowEx,WS_EX_LEFT,
ADDR szClassName,
ADDR szDisplayName,
WS_POPUP or WS_CLIPCHILDREN or WS_CLIPSIBLINGS,
0,0,Wwd,Wht,
NULL,NULL,
hInst,NULL
mov hWnd,eax

Убираем курсор (если не нужен):

invoke ShowCursor,FALSE

В WndProc добавляем в самом начале (добавляемый фрагмент для наглядности захватывает часть последующего кода):

.if uMsg ==WM_KEYDOWN or WM_KEYUP
.if wParam == 27
invoke SendMessage,hWin,WM_SYSCOMMAND,SC_CLOSE,NULL

.endif
.elseif uMsg == WM_CREATE

invoke Init,hWin

Теперь программа будет реагировать на нажатие клавиш - закрываться при нажатии Esc (код 27). В файле ресурсов убираем меню - оно уже не нужно, оставляем только строку с иконкой. Остальные файлы модификации не требуют. При закрытии программы на экране не остается ДОСовское окно.

Скачать исходники и ехе-файл.

©   Короленко М.В., 2011       
Перепечатка материалов возможна только после согласования с автором при условии обязательной ссылки на сайт