Программируем игры на DirectX: различия между версиями

Перейти к навигации Перейти к поиску
 
//Глобальные переменные
HWND g_hWnd = NULL; //Дескриптор окна
int g_iWindowWidth = 800; //Ширина окна
int g_iWindowHeight = 600; //Высота окна
bool g_bApplicationState = true; //Состояние приложения (true - работает/false - неработает)
bool g_bFullScreen = false; //Режим окна (true - полноэкранный/false - оконный)
 
//Прототипы функций
{
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX); //Размер структуры
wc.style = CS_HREDRAW|CS_VREDRAW; //Стили класса окна
wc.lpfnWndProc = WndProc; //Функция обработки сообщений
wc.cbClsExtra = 0; //Количество выделяемой памяти при создании приложения
wc.cbWndExtra = 0; //Количество выделяемой памяти при создании приложения
wc.hInstance = hInstance; //Дескриптор приложения
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); //Загружаем стандартную иконку
wc.hCursor = LoadCursor(0,IDC_ARROW); //Загружаем стандартный курсор
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //Окно будет закрашено в белый цвет
wc.lpszMenuName = 0; //Не используем меню
wc.lpszClassName = "Lesson 1"; //Названия класса
wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION); //Загружаем стандартную иконку
 
if(!RegisterClassEx(&wc)) //Регестрируем класс в Windows
{
MessageBox(NULL,"Can`t register window class","Error",MB_OK|MB_ICONERROR); //Выводим сообщение
return 0; //Завершаем работу приложения
}
 
DWORD iWindowStyle = 0;
 
if(g_bFullScreen) //Если у нас поноэкранный режим
{
iWindowStyleEx = WS_EX_APPWINDOW;
}
 
g_hWnd = CreateWindowEx( //Создаем окно
iWindowStyleEx, //Расшыренный стиль окна
"Lesson 1", //Названия класса окна
"Lesson 1 - Create Window. Init Direct3D", //Названия окна
iWindowStyle|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, //Стиль окна
0, //Позиция окна по оси Х
0, //Позиция окна по оси У
g_iWindowWidth, //Ширина окна
g_iWindowHeight, //Высота окна
NULL, //У нас это окно главное
NULL, //Нету меню
hInstance, //Дескриптор приложения
NULL); //Дополнительный настройек неиспользуем
 
if(g_hWnd == NULL) //Если не создали окно
{
MessageBox(NULL,"Can`t create window","Error",MB_OK|MB_ICONERROR); //Выводим сообщение
return 0; //Завершаем работу приложения
}
 
ShowWindow(g_hWnd,SW_SHOW); //Отображаем окно
UpdateWindow(g_hWnd); //Обновляем окно
SetFocus(g_hWnd); //Устанавливаем фокус на наше окно
SetForegroundWindow(g_hWnd); //Устанавливаем высший приоритет окна
 
MSG msg;
}
 
return 0; //Завершаем работу приложения
}
 
17

правок

Навигация