case SAVE: //переходит к выводу из строки s названия пункта.

MessageBox(hWnd."s"."".0):
break;

case TABLE: //В текстовую область выводятся подсказка и название пункта.

PrintString(hWnd.lO.l.s);
PrintString(hWnd.l0.2.s2);

SetTi mer(hWnd.2.3000.NULL); //Данный вызов запускает таймер 2. Через

//три секунды от него поступит первое сообщение WMJTIMER. по которому //функция OnTimerO сотрет область сообщений, break;

case L0AD0N: //Отработка управления состоянием пункта Load.

case LOADOFF:
{
HMENU menu - GetMenu(hWnd);

HMENU menO - GetSubMenu(menu. 0): //0 - номер подменю File. //Программа заносит данные о состоянии пункта Save //(это пункт 1 в подменю 0) в переменную flag.

int flag - GetMenuState(men0.1.MF_BYPOSITION); //В зависимости от значения переменной изменяется состояние пунктов //Save. Load On. Load Off функциями, которые были рассмотрены ранее.

if(flag & MF_GRAYED) {

EnableMenuItem(menO.1,MF_BYP0SITI0N|MF_ENABLED); CheckMenuItem(menu. LOADOFF.MF_BYCOMMAND | MF_CHECKED); CheckMenuItem(menu. LOADON.MFJYCOMMAND | MFJJNCHECKED); EnableMenuItem(menu.LOADOFF.MFJYCOMMAND | MFJNABLED); EnableMenuItem(menu.LOADON. MFJYCOMMAND j MFJISABLED): Demo-1: //Признак режима обучения }

else
{
Enabl eMenuItem(menO.1.MFJYPOSITION|MF_GRAYED); CheckMenuItem(menu. LOADON.MF BYCOMMAND I MF CHECKED);

продолжение

Создание и использование меню

Листинг 5.13 {продолжение)

CheckMenuItem(menu. L0AD0FF,MF_BYCOMMAND | MFJJNCHECKED); EnableMenuItem(menu,LOADON.MF_BYCOMMAND | MFJNABLED); EnableMenuItemtmenu.LOADOFF. MFJYCOMMAND | MF_DISABLED); Demo - 2; }

//При выполнении расположенных выше операторов состояние пункта изменится, //но мы этого не увидим, пока не вызовем подменю File, в которое этот пункт //входит. Чтобы сразу же показать, как стало выглядеть подменю, функции //DefWindowProc(hWnd.WM_SYSCOMMAND.SC_KEYMENU.'F'):

//передается сообщение WM_SYSCOMMAND. имитирующее нажатие «горячих» клавиш //Alt+F. Она вызывает окно подменю File, как показано на рис. 5.2.

SetTiтег(hWnd.1.40.NULL); //Это тоже запуск движения колеса.


⇐ Предыдущая| |Следующая ⇒