![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Структура Windows-програми.
Мінімальна Windows-програма складається з двох основних функцій: WinMain() з якої починається виконання програми і відбувається її інаціалізація, та WindowProc() яка викликається ОС для обробки повідомлення програми. WinMain() взаємодіє з ОС викликаючи деякі функції WinAPI. Те саме стосується і WinProc().
7.6 Цикл повідомлень Для отримання повідомлень з черги використовується Цикл повідомлень. Він має вигляд MSG msgwhile((GetMessage(& msg, NULL, 0, 0))! = 0) { TranslateMessage(& msg); DispatchMessage(& msg); } Функція GetMessage отримує повідомлення з черги 7.3 Функція WinMain() та її параметри. Функція WinMain() це еквівалент функції main() консольної програми. З неї починається виконання та інаціалізація програми. int WINAPI WinMain ( HINSTANCE hThisInstance, //дескриптор еземпляра прикладної програми HINSTANCE hPrevInstance, //дескриптор попереднього еземпляра програми LPSTR lpCmdLine, //вказівник на рядок що містить командний рядок що запустив програму int nCmdShow //визначає зовнішній вигляд вікна при його створенні)
7.4 Реєстрація класу вікна Реєстрація класу вікна відбувається за допомогою функції RegisterClassEx(). Її параметром є адреса структури WNDCLASSEX яка містить дані що описують вікно програми. struct WNDCLASSEX { UINT style; HICON hIconSm; }
7.7 Процедура вікна та функція WindowProc(). Функ.WindowProc () викликається ОС для обробки повідомлення програми. LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); 7.5 Створення примірника вікна Для створення примірника вікна використовується функція CreateWindowEx() для повертає дескриптор створеного вікна. HWND CreateWindowEx ( DWORD dwExStyle, // покращений стиль вікна (зазвичай NULL) LPCTSTR lpClassName, // вказ. на зареєстроване ім’я класу вікна LPCTSTR lpWindowName, // вказівник на ім‘я вікна DWORD dwStyle, // стиль вікна int x, // горизонтальна позиція вікна int y, // вертикальна позиція вікна int nWidth, // ширина вікна int nHeight, // висота вікна HWND hWndParent, // дескриптор батьківського вікна HMENU hMenu, // дескриптор меню HINSTANCE hInstance, // дескриптор еземпляра прикладної програми LPVOID lpParam // вказівникна дані створеннявікна );
|