Отмеченные и очищенные пункты меню
Пункт меню может быть или отмеченным (с "галочкой") или очищенным (без "галочки"). Система показывает на экране точечный рисунок (обычно "галочку") рядом с отмеченными пунктами меню, чтобы обозначить их выбранное состояние. Система не показывает на экране точечный рисунок рядом с очищенными пунктами до тех пор, пока задан определяемый программой точечный рисунок "очищенный". В меню только пункты могут быть отмеченными; в строке меню командные пункты не могут быть отмеченными "галочкой".
Прикладные программы обычно отмечают "галочкой" или очищают пункт меню, чтобы указать, действует ли параметр. Например, предположим, что прикладная программа имеет инструментальную панель, которую пользователь может показывать или скрывать при помощи использования команды Toolbar в меню. Когда инструментальная панель скрыта, пункт меню Toolbar очищенный (нет отметки "галочкой"). Когда пользователь выбирает команду, приложение отмечает "галочкой" пункт меню и показывает инструментальную панель.
Атрибут метки "галочкой " проверяет, является ли пункт меню выбранным. Вы можете установить атрибут отметки "галочкой " пункта меню при помощи использования функции CheckMenuItem. Вы можете использовать функцию GetMenuState, чтобы установить, отмеченный или очищенный в настоящее время пункт меню.
Вместо функций CheckMenuItem и GetMenuState, Вы можете использовать функции GetMenuItemInfo и SetMenuItemInfo, чтобы извлекать данные и устанавливать отмеченное состояние пункта меню.
Иногда, группа пунктов меню представляет набор взаимоисключающих параметров. В этом случае, Вы можете обозначать выбранный параметр при помощи использования отметки пункта меню “радиоселектором” (“радиоселектор” аналогичен органу управления “радио-кнопке”). Отметки пунктов меню “радиоселектором” отображаются точечным рисунком маркера вместо точечного рисунка отметки "галочкой". Чтобы отметить пункт меню и сделать его пунктом с “радиоселектором”, используйте функцию CheckMenuRadioItem.
По умолчанию, система показывает на экране отметку "галочкой" или точечный рисунок “радиоселектора” рядом с отмеченными пунктами меню и без точечного рисунка рядом с очищенными пунктами меню. Тем не менее, Вы можете использовать функцию SetMenuItemBitmaps, чтобы связать определяемые программой точечные рисунки отметки и снятие отметки "галочкой" с пунктом меню. Система затем использует заданные точечные рисунки, чтобы обозначить отмеченное и очищенное состояние пункта меню.
Определяемые программой точечные рисунки, связанные с пунктом меню, должны быть того же самого размера, как и заданный по умолчанию точечный рисунок "галочки", габариты которого могут изменяться в зависимости от разрешающей способности экрана. Чтобы извлечь данные о правильных размерах, используйте функцию GetSystemMetrics. Вы можете создавать многокомпонентные растровые ресурсы для различных разрешений экрана; создайте один растровый ресурс, и, в случае необходимости, масштабируйте его; или создайте точечный рисунок во время выполнения программы и рисуйте изображение в нем. Точечные рисунки могут быть или одноцветные или цветные. Однако, поскольку пункты меню, при выделении инвертируются, внешний вид некоторых инвертированных цветных точечных рисунков может быть не самый лучший. Для получения дополнительной информации, см. тему Точечные рисунки.