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

61,А. Использование символа ‘&’ в описаниях пунктов меню

Амперсант (&) вызывает подчеркивание следующего за ним символа при выводе элементов меню на экран. Windows ищет этот же символ, когда пользователь выбирает элемент меню с использованием клавиши <Alt>. Если не включить амперсант в текст, то в тексте меню не будет подчеркнутых символов, и Windows будет использовать первую букву текста при поиске.

61,Б. Действия, которые приводят к получению и потере фокуса для меню

//Ответ так же не был найден. Написано от себя

Меню может получить/потерять фокус при взаимодействии с ним по средствам мыши или клавиатуры. Инициация получения фокуса происходит при нажатии левой кнопкой мыши на главное меню или же при нажатии клавиши <Alt>. Пункты меню получают фокус, когда курсор находится непосредственно над пунктом меню или же при выделении пункта меню про средствам «стрелочек» на клавиатуре. Элемент меню, имеющий фокус, по особому выделяется (подсвечивается).

61,В. Основные признаки пунктов меню, порядок изменения состояния пунктов меню

Признаками в инструкциях MENUITEM, относящихся к всплывающим меню, являются следующие:

  • CHECKED — Слева от текста появляется метка ("галочка").

  • GRAYED — Данный пункт меню недоступен и не генерирует сообщений WM_COMMAND. Текст изображается недоступным(серым цветом).

  • INACTIVE — Данный пункт меню неактивен и не генерирует сообщений WM_COMMAND. Текст изображается обычным образом.

  • MENUBREAK — Данный пункт меню, а также все последующие появляются на экране в новом столбце.

  • MENUBARBREAK — Данный пункт меню, а также все последующие появляются на экране в новом столбце. Столбцы разделяются между собой вертикальной чертой.

Опции GRAYED и INACTIVE нельзя использовать вместе. Опции MENUBREAK и MENUBARBREAK нельзя использовать вместе.

Для изменения состояния пункта меню необходимо сначала получить описатель (хэндл) на меню: hMenu = GetMenu(hwnd); После чего состояние пункта меню можно изменить с помощью функций CheckMenuItem или EnableMenuItem, так же может понадобиться функция GetSubMenu, для доступа к подпунктам меню.

61,Г. Способы подключения меню в программу

  1. В определении меню класса

wndclass.lpszMenuName = "MyMenu"; или

wndclass.lpszMenuName = MAKEINTRESOURCE(45); или

wndclass.lpszMenuName = "#45";

  1. Девятый параметр функции CreateWindow

hMenu = LoadMenu(hInstance, "MyMenu");

и затем указать хэндл hMenu в 9ом параметре функции CreateWindow.

  1. Присоединение меню к окну с помощью функции SetMenu

hMenu = LoadMenu(hInstance, "MyMenu");

SetMenu(hwnd, hMenu);

61,Д. Основные сообщения меню, их структура и назначение.

Когда пользователь выбирает пункт меню, Windows посылает оконной процедуре несколько различных сообщений. Одним из таких сообщений является сообщение WM_INITMENU, которое имеет следующие параметры:

wParam

lParam

Описатель главного меню

0

Это сообщение существует для того, чтобы дать вам возможность изменить меню перед тем, как будет выбран пункт меню.

-----------------------------------------------------------------------------------------------------------

Если пользователь перемещает курсор мыши по пунктам меню, программа может получить множество сообщений WM_MENUSELECT. Данное сообщение имеет следующие параметры:

LOWORD(wParam)

HIWORD(wParam)

lParam

Выбранный пункт: идентификатор меню или описатель сплывающего меню

Флаги выбора

Описатель меню,

содержащего

выбранный пункт

Сообщение WM_MENUSELECT — это сообщение для отслеживания перемещения по меню. Младшее слово параметра wParam говорит о том, какой пункт меню выбран (подсвечен) в данный момент. В старшем слове параметра wParam могут быть комбинации из следующих флагов выбора: MF_GRAYED, MF_DISABLED, MF_CHECKED, MF_BITMAP, MF_POPUP, MF_HELP, MF_SYSMENU иMF_MOUSESELECT. Сообщение WM_MENUSELECT может понадобиться для того, чтобы изменить что-нибудь в рабочей области окна на основе информации о перемещении подсветки по пунктам меню.

-----------------------------------------------------------------------------------------------------------

Когда Windows готова вывести на экран всплывающее меню, она посылает оконной процедуре сообщение WM_INITMENUPOPUP со следующими параметрами:

wParam

LOWORD(lParam)

HIWORD(lParam)

Описатель всплывающего меню

Индекс всплывающего меню

Для системного меню «1», в ином случае «0»

Это сообщение важно, если необходимо разрешать или запрещать пункты меню перед их выводом на экран.

-----------------------------------------------------------------------------------------------------------

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

LOWORD(wParam)

HIWORD(wParam)

lParam

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

0

0

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