Вопрос № 20528: Здравствуйте!
В Microsoft Word, как все видели, в главном меню если раскрыть подменюшки то пункты выглядят так: например, меню "Формат": первый пункт: битмап в виде буквы "А" текст "Шрифт"; меню "Правка": ...
Вопрос № 20528
Здравствуйте!
В Microsoft Word, как все видели, в главном меню если раскрыть подменюшки то пункты выглядят так: например, меню "Формат": первый пункт: битмап в виде буквы "А" текст "Шрифт"; меню "Правка": битмап "стрелочка назад" и надпись "отменить".
Хочу сделать попап-меню такого же типа, то есть со структрой пункта - битмап + текст /значки с ХР цветностью/. В любой IDE это раз плюнуть, а на API че то непросто :(
Никак не получается. уже и так и сяк кручу эту структуру MENUITEMINFO. И fMask=MIIM_BITMAP и fType = MF_BITMAP; и загружал битмап из файла в hbmpItem. В общем в итоге, только пустое меню отображается.
Может, у кого рабочий код есть?
Приложение:
Отправлен: 06.05.2005, 20:35
Вопрос задал: smile (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Raptor1
Здравствуйте, smile!
Так работает, не проверял с XP цветностью но проблем быть не должно. Также я думаю вам не повредит небольшое присутствие MFC которое легко устранить.
в *.h вашего диалога
HMENU mn;
CBitmap b;
в OnInitDialog в конце
b.LoadBitmap(IDB_BITMAP1);
mn=::LoadMenu(::AfxGetInstanceHandle( ),MAKEINTRESOURCE(IDR_MENU1));
SetMenuItemBitmaps(mn,ID_ITEM1,MF_BYCOMMAND,b,NULL);
в OnRButtonDown в конце
HMENU submenu;
submenu = GetSubMenu(mn,0);
::ClientToScreen(this->m_hWnd,&point);
TrackPopupMenu(submenu,TPM_LEFTALIGN |TPM_RIGHTBUTTON,point.x,point.y,0,this->m_hWnd,NULL);
ну и в DestroyWindow
DestroyMenu(mn);
b.DeleteObject();
Ответ отправил: Raptor1 (статус: 4-ый класс)
Отправлен: 07.05.2005, 11:39