Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Программирование для IBM OS/2

© Александр Фролов, Григорий Фролов
Том 25, М.: Диалог-МИФИ, 1993, 286 стр.

[Назад] [Содеожание] [Дальше]

3.3. Обработка сообщения WM_COMMAND

Сообщение с кодом WM_COMMAND передается в функцию главного окна приложения, когда пользователь выбирает одну из строк меню верхнего уровня.

Первый параметр сообщения содержит код выбранной строки, поэтому обработку сообщения WM_COMMAND можно выполнять, например, так (фрагмент кода взят из приложения MENUAPP):

case WM_COMMAND :
{
  switch(LOUSHORT(mp1))
  {
    case IDM_FILE_NEW:
    case IDM_FILE_OPEN:
    . . .
    case IDM_HELP_KEYS:
    {
       WinMessageBox (HWND_DESKTOP, hWnd,
         "Функция не реализована",
         szAppTitle, 0, MB_INFORMATION | MB_OK);
      break;
    }

    case IDM_HELP_ABOUT:
    {
       WinMessageBox (HWND_DESKTOP, hWnd,
         "Приложение MenuApp, (C) Frolov A., 1996",
         szAppTitle, 0, MB_INFORMATION | MB_OK);
      break;
    }

    case IDM_FILE_EXIT:
    {
       WinPostMsg (hWnd, WM_QUIT , 0L, 0L);
       break;
    }
  }
  return(WinDefWindowProc (hWnd, msg, mp1, mp2));
}

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

Заметим, что сообщение WM_COMMAND передается в родительское окно не только от меню, но также и от других органов управления, таких как кнопки, акселераторы и т. д. Однако в приложении MENUAPP источником сообщения WM_COMMAND служит только меню, поэтому вторым параметром этого сообщения мы пренебрегаем.

[Назад] [Содеожание] [Дальше]