Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 72
от 11.05.2005, 20:40

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Посетителей: сейчас / за сутки / всего Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Отписаться

В избранное