Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
43-70_otvety_na_teplogo.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
87.53 Кб
Скачать

61,Е. Отличия сообщения wm_command для меню и кнопок.

Сравнительная таблица передаваемых параметров для меню и кнопки:

LOWORD(wParam)

HIWORD(wParam)

lParam

Меню

Идентификатор меню

0

0

Кнопка

Идентификатор кнопки

Код уведомления

Описатель дочернего окна

61,Ж. Отличия сообщения wm_command от сообщения wm_syscommand

Сообщение WM_SYSCOMMAND похоже на сообщение WM_COMMAND за исключением того, что сообщение WM_SYSCOMMAND сигнализирует, что пользователь выбрал разрешенный пункт системного меню:

LOWORD(wParam)

HIWORD(wParam)

lParam

Идентификатор меню

0

0 (Если сообщение

WM_SYSCOMMAND является результатом щелчка мыши, тогда старшее и младшее словоlParam являются, соответственно, экранными координатамиX и Y курсора мыши.)

Идентификатор меню показывает, какой пункт системного меню выбран. Для предопределенных пунктов системного меню, четыре младших разряда должны быть замаскированы. Результирующая величина будет одной из следующих: SC_SIZE, SC_MOVE, SC_MINIMIZE, SC_MAXIMIZE, SC_NEXTWINDOW, SC_PREVWINDOW,

SC_CLOSE, SC_VSCROLL, SC_HSCROLL, SC_ARRANGE, SC_RESTORE иSC_TASKLIST.

Кроме того, младшее слово параметра wParam может быть SC_MOUSEMENU или SC_KEYMENU.

Если вы добавите к системному меню новые пункты, то младшее слово параметра wParam станет идентификатором, который вы определите (должен быть больше 0xF000). Обычные сообщения WM_SYSCOMMAND должны передаваться в DefWindowProc, иначе обычные команды системного меню будут отключены.

62. Всплывающее меню. Отличия в описании всплывающего меню от описания главного меню в файле ресурсов

Всплывающее меню появляется при нажатии правой кнопки мыши в любой части экрана. Основное отличие в описании файла ресурсов это то, что всплывающее меню содержит лишь один пункт.

Пример контекстного меню:

PopMenu MENU

{

POPUP ""

{

POPUP "&File"

{

MENUITEM "&New", IDM_NEW

MENUITEM "&Open...", IDM_OPEN

MENUITEM "&Save", IDM_SAVE

MENUITEM "Save &As...", IDM_SAVEAS

MENUITEM SEPARATOR

MENUITEM "E&xit", IDM_EXIT

}

}

}

62,А Порядок обращению к всплывающему меню

Для доступа к элементам всплывающего меню, необходимо получить доступ к первому (0-ой индекс) пустому пункту:

hMenu = GetSubMenu(hMenu, 0);

После чего можно работать с всплывающим меню.

63. Системное меню. Особенности, описание и использование системного меню

В родительских окнах, стиль которых содержит идентификатор WS_SYSMENU, имеется зона системного меню в левой части строки заголовка. Данное меню генерирует сообщение WM_SYSCOMMAND при взаимодействии с ним. В данное меню можно добавить свои пункты, по мимо системных, только в таком случае идентификаторы должны иметь значения большие 0x000F, а так же сообщения, посылаемые с WM_SYSCOMMAND, должны отправляться в DefWindowProc, чтобы их действия не были запрещены, а оставались активными. Стандартное системное меню позволяет производить различные действия с окном: перемещать, закрывать, разворачивать и т.д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]