HWND menuWnd: if (wParam-MSGF_MENU) {
menuWnd - (HWND)lParam: switch(Demo) {
case 1: //Демонстрация включения пункта Save
Del ay(1500): //После паузы в окно меню посылается 0x28 -SendMessage(menuWnd.WM_KEYDOWN.0x28.0x1500001): //код стрелки вниз. Delау(1500): //После второй паузы передается Oxd - код клавиши Enter PostMessage(menuWnd.WM_KEYDOWN.Oxd.0x1500001):
break:
case 2: //Демонстрация включения пункта Save Delay(1500):
PostMessage(menuWnd.WM_LBUTT0ND0WN,0.0): break: case 3:
//Выбор пункта Обучение активирует подменю Work для пуска колеса PrintString(hWnd.10.1,"Для пуска движения колеса"): PrintString(hWnd.10.2."необходимо вызвать подменю Work"):
//Вывод пояснений
Delay(2000);
SendMessage(menuWnd.WM_KEYDOWN,0x28.0x1500001): //0x28 - стрелка вниз
PrintStringChWnd.10.1."Переместить курсор на пункт Graphics"): Delay(2000):
SendMessage(menuWnd.WM_KEYDOWN,Oxd.0x1500001): //Oxd - Enter PrintString(hWnd.l0.1.''Щелкнуть левой кнопкой мыши"); Demo - 4; Взаимодействие меню и приложения
SetTimerChWnd.10.4000.0); return;
//После пуска колеса нужно выйти из оконной процедуры, иначе она не сможет //получать сообщения таймера 1 и перемещать изображение.
case 4: //Подменю Work вызвано по таймеру 10 для останова колеса Pr1ntString(hWnd.l0.l.
"Для останова колеса вызывается то же подменю");
Delay(2000);
SendMessageCmenuWnd.WMJCEYDOWN.0x28.0x1500001);
PrintStringChWnd.10.1."Повторный выбор пункта Graphics");
PrintStringChWnd.10.2."останавливает колесо");
Delay(1500);
SendMessageCmenuWnd.WM_KEYDOWN.Oxd.0x1500001);
PrintStringChWnd.10.1." "); //Очистка области подсказок break; }
Demo - 0; Программа обучения завершена - устанавливаем рабочий режим }
}
Теперь нужно запустить проект и несколько раз нажать на клавиши. По кодам, выводимым при этом в область сообщений, можно сделать несколько выводов. Прежде всего становится понятно, что у каждой клавиши только один виртуальный код. При нажатии клавиши А в русском и английском регистрах в сочетании с клавишей Ctrl или Shift всегда выводится код 0x41. В стандартной клавиатуре предполагалось иметь одну клавишу Ctrl, поэтому обе клавиши Ctrl и правая клавиша Alt имеют одинаковые коды. Левая клавиша Alt вообще не порождает сообщений WMJCEYDOWN, WMJCEYUP.