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


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


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

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

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

} SendMessage(hStatusWindow, SB_SETTEXT, (WPARAM) 0, (LPARAM)

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

case WM_DESTROY: DeleteObject(hBitmap); PostQuitMessage(O); return 0;

return DefWindowProc(hWnd,Message,wParam, IParam);

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

Вид окна, создаваемого программой, показан на рис. 7.

Как и в случае нашей первой программы для Windows, давайте рас­смотрим эту программу. Естественно, включаем файлы заголовков Win32. Включение файла «commctrl.h» обусловлено вызовом функций для работы со строкой состояния, заголовки которых находятся в этом файле. Далее идут многочисленные описания и определения, объяснять которые я не буду, они сразу же становятся понятными при разборе программы. В функции WinMain() все ясно до момента вызова функции InitCommonControls(). Но и здесь нет ничего страшного. Эта функция вызывается всегда перед использованием библиотеки общих элементов управления, к которым относится и строка состояния. К меню и нашей задаче эта функция имеет весьма далекое отношение. Интерес вызывает фрагмент, который начинается после строки комментария /* Try to create menu */.

[Menu example

ppic. 7. Окно с меню, содержащим bitmap

84

85

Таблица 16. Битовые флаги, определяющие поведение и вид элемента меню

Флаг

Назначение

MF_BITMAP

MF_CHECKED

MFJDISABLED

MF^ENABLED

MF_GRAYEU

MF_MENUBARBREAK

MF_MENUBREAK

MF_OWNERDRAW MF_POPUP

MF^SEPARATOR

MF_STRING

MF UNCHECKED

Вместо строки символов в качестве элемента меню используется изображение (bitmap) Отмечаемый элемент меню Запрещенный, но не «серый» элемент меню Разрешенный элемент меню Запрещенный «серый» элемент меню То же, что и следующее, но вертикальные столбцы отделя­ются вертикальной чертой

Очередной элемент меню размещают в новой строке (menubar) или в новом столбце За прорисовку элеме!гга отвечает программа, а не Windows Выбор элемента влечет за собой появление меню более низкого уровня Горизонтальная черта




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



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