Работа с меню в Windows – одно из самых простых и понятных мест. Для создания меню вам просто нужно:
1) Задать структуру меню в файле ресурсов, последовательно определив пункты меню в виде текстовых строк.
2) Каждому пункту меню поставить в соответствие уникальный идентификатор.
3) Указать имя меню в структуре класса окна.
Как вы уже понимаете, для функции окна неважно, каким образом пользователь выбрал команду – при помощи последовательно нажатий клавиш (Alt, стрелка вправо, ... , Enter, стрелка вниз, ... , Enter), мышью или просто нажатием назначенных на пункт меню комбинацией клавиш (например, копируете текст в «почтовый ящик» – Clipboard – нажатием Ctrl / Ins ).
Когда пользователь выбирает пункт меню, Windows передает приложению сообщение WM_COMMAND, содержащее идентификатор выбранного пункта, так что после определения структуры меню в файле ресурсов нужно оформить собственно текст программы – вывести обработку сообщения WM_COMMAND.
Меню главного окна размещается непосредственно под заголовком окна; это старший уровень меню приложения, поэтому его иногда называют главным меню. Пункты главных меню могут является заголовками «падающих» меню, которые, в свою очередь, могут быть заголовками «всплывающих» меню. Пункты меню верхнего уровня могут быть активные, неактивные, отмеченными или отображается серым цветом.
Отображение серым цветом и неактивность меню – разные вещи; пункт может отображаться нормально, но быть неактивным (DESABLED). Однако, если пункт отображается серым цветом (GRAYED), то он всегда неактивен; мы рекомендуем вам пользоваться именно этим состоянием, поскольку иначе пользователь не может определить активен пункт или нет.
Меню может быть создано двумя различными способами: описанием в файле ресурсов и функциями динамической работы с меню, т.е. непосредственно из самой программы, в процессе её работы. Чаще всего используются оба способа: при создании программы в файле ресурсов определяется одно или несколько меню, а в процессе работы по мере необходимости одно меню может быть заменено другим или изменены некоторые свойства текущего меню (пункты могут быть динамически добавлены, убраны, отмечены, выделены серым цветом и т.п.).