Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 81


SendMessage(hWnd, WM_CLOSE, NULL, NULL); break;

} case WM_SIZE:

SendMessage(hSlatusWindow,WM SIZE.wParam,IParam);

GetClicnlRcct(hWnd,&Rect);

return 0;

case WM_MENUSELECT: // Selection is lostcd

if ( ((UINT) HIWORD(wParam) == Oxfffl) & ((HMENU) IParam == 0))

{ SendMessage(hStatusWindow, SB_SETTEXT, (WPARAM) 0,

(LPARAM) pMessages[5]); return 0;

} if ((UINT) HIWORD(wParam) & MF_SYSMENU)

{ SendMessage(hStatusWindow, SB_SETTEXT, (WPARAM) 0,

(LPARAM) pMessages[6]); return 0;

if ((UINT) HIWORD(wParam) & MF_POPUP)

(

ScndMcssage(hStatusWindow, SB^SETTEXT, (WPARAM) 0.

(LPARAM) pMessages[3 + LOWORD(wParam)]); return 0;

! SendMessage(hStatusWindow,SB_SETTEXT. (WPARAM) 0, (LPARAM)

pMcssages[LOWORD(wParam)]); return 0;

case WM_DESTROY: PostQuitMessage(O); return 0; } return DefWindowProc(hWnd,Message,wParam, IParam);

Листинг № 5. Программа, демонстрирующая возможности акселера­торов меню.

Мне бы хотелось, чтобы читатель поэкспериментировал с этой про­граммой, попробовал переопределить акселераторы, и вновь провел несколько экспериментов.

Завершим рассмотрение темы о меню ответом на вопрос о том, как можно создать акселераторы без использования ресурсов.

96

Таблица  18. Возможные значения флагов поля fVirt структуры типа ACCEL

Флаг

Значение

FALT FCONTROL

FNOFNVERT FSHIFT

FVIRTKEY

При нажатии акселераторной комбинации должна быть нажата

клавиша Alt

При нажатии акселераторной комбинации должна быть нажата

клавиша Control

Внешне меню не реагирует на нажатие акселераторной комбинации

При нажатии акселераторной комбинации должна быть нажата

клавиша Shift

Поле key определяет виртуальную клавишу. Если это поле не

установлено, то считается, что поле key содержим символ ASCII

Для создания таблицы акселераторов применяется функция CreateAcceleratorTableQ, которой в качестве аргументов передаются адрес массива структур типа ACCEL и число структур в этом массиве.

Назначение полей структуры ACCEL должно быть понятно читателю, внимательно прочитавшему текущий раздел. В файле winuser.h эта струк­тура описана следующим образом:




Начало  Назад  Вперед



Книжный магазин