Меню с вертикальной
картинкой
Автор: Dipti Alone.
Возможности
- Пример позволяет показать вертикальную картинку
в левой части меню, наподобие стартового меню в
Windows.
- Также в меню могут быть помещены дочерние
элементы управления.
Использование:
Чтобы использовать класс CBmpMenu, Вам необходимо
использовать стандартные функции включённые в
CMenu для отображения всплывающего меню. Вам нужно
создать экземпляр CBmpMenu вместо CMenu и затем
использовать LoadMenu или CreatePopupMenu сопровождаемые
TrackPopupMenu.
Вам необходимо создать обработчики
вертикальной картинки в конструкторе.
CBmpMenu(int nBitmapW=0,
BOOL bShowBmp4SubMenu=FALSE,
HBITMAP hBitmap=0,
BOOL StretchBmp=TRUE);
Разборка аргументов
- nBitmapW - Ширина пустой области, которая будет
выделена с лева для отображения вертикальной
картинки в меню.
- bShowBmp4SubMenu - Если TRUE, то чистая область будет
показана для всех подменю. Если FALSE, тогда чистая
область будет показана только в основном меню.
- hBitmap - Если создан обработчик, то этот битмап
будет показан на месте пустой области
- bStretchBmp - Если TRUE, тогда битмап рисуется используя
StretchBlt. Если False, тогда пустая область заполняется
кистью, созданной из битмапа.
Если Вы хотите разместить дочерние элементы
управления в меню, то это необходимо сделать в
обработчике WM_ENTERMENULOOP.
Параметры для WM_ENTERMENULOOP изменяются в классе
CbmpMenu.
WM_ENTERMENULOOP:
// обработчик меню, который вводит модальный цикл
wParam = (HMENU)hMenu;
//обработчик меню(окно меню типа CBmpMenu)
lParam = (HEND)hWindow;
Используйте hWindow как родительское окно, и тогда
Вы сможете создавать и помещать в меню дочерние
элементы управления.
Downloads
Скачать демонстрашку - 40 Kb
Скачать исходник - 14 Kb
|