Справочник от Автор24
Поделись лекцией за скидку на Автор24

Оконная процедура.Создание проекта Win32.Обработка сообщений.Создание дочерних окон.

  • 👀 193 просмотра
  • 📌 129 загрузок
Выбери формат для чтения
Статья: Оконная процедура.Создание проекта Win32.Обработка сообщений.Создание дочерних окон.
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pptx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Оконная процедура.Создание проекта Win32.Обработка сообщений.Создание дочерних окон.» pptx
Инф ормационны е технологии Лекция №7 План лекции • Оконная процедура • Создание проекта Win32 • Обработка сообщений • Создание дочерних окон 1 Оконная процедура (блок-схема) НАЧАЛО uMsg WM_CREATE WM_PAINT WM_DESTROY DefWindowProc Инициализация Вывод графики PosrQuitMessage 2 Оконная процедура (исходны й код) LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); } 3 Создание проект а 4 Создание проект а (продолж ение) 5 Создание проект а (продолж ение) 6 Сообщение WM_CREATE WM_CREATE (0x0001) wParam – не используется lParam – указатель на структуру CREATESTRUCT typedef struct tagCREATESTRUCT { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCTSTR lpszName; LPCTSTR lpszClass; DWORD dwExStyle; } CREATESTRUCT, *LPCREATESTRUCT; CREATESTRUCT *cs; cs = (CREATESTRUCT *)lParam; uWidth = cs->cx; 7 Класс BUTTON • Push Buttons BS_PUSHBUTTON BS_DEFPUSHBUTTON • Check Boxes BS_CHECKBOX BS_AUTOCHECKBOX BS_3STATE BS_AUTO3STATE • Radio Buttons BS_RADIOBUTTON BS_AUTORADIOBUTTON • Group Boxes BS_GROUPBOX CreateWindow("BUTTON", "BS_PUSHBUTTON", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 10, 10, 250, 30, hWnd, IDB_PUSHBUTTON, ID g_hInstance, NULL); кнопки Стиль кнопки 8 Класс EDIT CreateWindow("EDIT", "Текст", WS_VISIBLE | WS_CHILD, 10, 50, 250, 30, hWnd, IDE_EDIT, g_hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "Другой текст", WS_VISIBLE | WS_CHILD, 10, 90, 250, 30, hWnd, (HMENU)NULL, g_hInstance, NULL); /* * Edit Control Styles */ #define ES_LEFT 0x0000L #define ES_CENTER 0x0001L #define ES_RIGHT 0x0002L #define ES_MULTILINE 0x0004L #define ES_UPPERCASE 0x0008L #define ES_LOWERCASE 0x0010L #define ES_PASSWORD 0x0020L #define ES_AUTOVSCROLL 0x0040L #define ES_AUTOHSCROLL 0x0080L #define ES_NOHIDESEL 0x0100L #define ES_OEMCONVERT 0x0400L #define ES_READONLY 0x0800L #define ES_WANTRETURN 0x1000L #if(WINVER >= 0x0400) #define ES_NUMBER 0x2000L #endif /* WINVER >= 0x0400 */ 9 Взаимодейст вие с дочерними окнами • Дочерним окнам можно посылать сообщения (нужен дескриптор) • Дочерне окна посылают сообщение WM_COMMAND (распознаются по ID) LRESULT WINAPI SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); SendMessage(hButton, WM_SETFONT, GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0)); BOOL WINAPI SetWindowText( HWND hWnd, LPCTSTR lpString ); int WINAPI GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount ); BOOL WINAPI MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint ); 10 Сообщение WM_COMMAND #define WM_COMMAND 0x0111 Message Source wParam (high word) Menu wParam (low word) lParam Menu identifier (IDM_*) Accelerator 1 Accelerator identifier (IDM_*) Control Control identifier Handle to the control window Control-defined notification code 11
«Оконная процедура.Создание проекта Win32.Обработка сообщений.Создание дочерних окон.» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot