6. Сообщения. Структура сообщений на примере WM_COMMAND (Ответы на вопросы билетов)
Описание файла
Файл "6. Сообщения. Структура сообщений на примере WM_COMMAND" внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1.Сообщения. Структура сообщений на примере WM_COMMANDСообщение - это извещение о некотором имевшем место событии, посылаемое системой Windows –они информируют Windows или приложение, что произошло какое-то событие (например, произошлонажатие клавиши). Также сообщение может быть послано или получено от другого пользователя илиWindows.Сообщение WM_COMMANDidItem = wParam;/* control or menu item identifierhwndCtl = (HWND) LOWORD(lParam); /* handle of controlwNotifyCode = HIWORD(lParam);/* notification message*/*/*/The WM_COMMAND message is sent to a window when the user selects an item from amenu, when a control sends a notification messageСообщение с кодом WM_COMMAND передается функции родительского окна от органауправления, созданного этим окном.
При создании органа управления (например, кнопки на базекласса "button") вызывается функция CreateWindow, которой указываете идентификаторродительского окна и идентификатор органа управления.Если орган управления изменяет свое состояние (например, когда вы нажали на кнопку),функция родительского окна получает сообщение WM_COMMAND. Вместе с этим сообщениемфункция родительского окна получает в параметре wParam идентификатор органа управления.Младшее слово параметра lParam содержит идентификатор дочернего окна, т.
е. идентификаторокна органа управления. Старшее слово lParam содержит код извещения от органа управления(notification code), по которому можно судить о том, какое действие было выполнено над органомуправления.Когда вы нажимаете на кнопку, родительское окно получает сообщение WM_COMMAND скодом извещения, равным BN_CLICKED.
Получив такое сообщение, приложение определяет, чтобыла нажата кнопка, идентификатор которой находится в параметре wParam.Или, если у нас создано меню с помощью шаблона, то мы можем получить это сообщение при выборепункта системного меню. wParam содержит идентификатор строки, определенной в шаблоне меню.Пример обработки сообщения WM_COMMAND:LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam){switch (iMessage){// Осуществим обработку выбранного пункта менюcase WM_COMMAND:{switch (wParam){// Сообщения от менюcase IDM_FIVE:break;case IDM_FOUR:{PostQuitMessage(0);break;}}}default:return DefWindowProc(hWnd, iMessage, wParam, lParam);}return 0;}.