Здравствуйте, ламмму, Вы писали:
Л>Привет
Л>Вобщем есть попап меню вытягиваемое из ресурсов... Л>Как каждому итему назначить иконку ?
Л>спасибо
создать ImageList и задать его в CCommandBarCtrl.
Далее CCommandBarCtrl.TrackPopupMenu.
Здравствуйте, Splin, Вы писали:
S>Здравствуйте, ламмму, Вы писали:
Л>>Привет
Л>>Вобщем есть попап меню вытягиваемое из ресурсов... Л>>Как каждому итему назначить иконку ?
Л>>спасибо S>создать ImageList и задать его в CCommandBarCtrl. S>Далее CCommandBarCtrl.TrackPopupMenu.
Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте, ламмму, Вы писали:
Л>>А где этот CCommandBarCtrl находиться ?
MNZ>Находится в atlctrlw.h. Создайте новый пустой WTL проект с включённой галочкой CommandBar и посмотрите, как он создаётся.
Здравствуйте, ламмму, Вы писали:
Л>Здравствуйте, Splin, Вы писали:
S>>Здравствуйте, ламмму, Вы писали:
Л>>>Привет
Л>>>Вобщем есть попап меню вытягиваемое из ресурсов... Л>>>Как каждому итему назначить иконку ?
Л>>>спасибо S>>создать ImageList и задать его в CCommandBarCtrl. S>>Далее CCommandBarCtrl.TrackPopupMenu.
Л>А где этот CCommandBarCtrl находиться ?
Если проект сгенерирван визардом:
CMainFrame::m_CmdBar
1) Добавляем в CMainFrame метод для отображение контекстных меню:
BOOL CMainFrame::TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, LPTPMPARAMS lpParams = NULL)
{
return m_CmdBar.TrackPopupMenu(hMenu, uFlags, x, y, lpParams);
}
2) вызываем наш метод где-то в коде вместо стандартного TrackPopupMenu.
Л>Менюшка показуется нормально, с иконками... но теперь не приходят события о нажатии в менюхе(OnCommand)... что делать ?
А hWnd чей указывается? Видимо, туда и приходят. А почему не создаёте CommandBar при помощи CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE) в главной форме?
Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте, ламмму, Вы писали:
Л>>Делаю так: Л>>
Л>> ctrl.Create(hWnd, r);
Л>>
Л>>Менюшка показуется нормально, с иконками... но теперь не приходят события о нажатии в менюхе(OnCommand)... что делать ?
MNZ>А hWnd чей указывается? Видимо, туда и приходят. А почему не создаёте CommandBar при помощи CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE) в главной форме?
Просто у меня не CMainForm.
Я делаю плугин для IE. вызываю это дело из вотакого каласса :
class CBandToolBarCtrl
: public CWindowImpl<CBandToolBarCtrl, CToolBarCtrl>
{
//[...]
OnSomeEvent(bla,bla)
{
//код который я ранее показал
}
};
Здравствуйте, ламмму, Вы писали:
Л>Здравствуйте, MNZ, Вы писали:
MNZ>>А hWnd чей указывается? Видимо, туда и приходят. А почему не создаёте CommandBar при помощи CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE) в главной форме?
Л>Просто у меня не CMainForm. Л>Я делаю плугин для IE. вызываю это дело из вотакого каласса :
Л>
Л>class CBandToolBarCtrl
Л> : public CWindowImpl<CBandToolBarCtrl, CToolBarCtrl>
Л>{
Л> //[...]
Л> OnSomeEvent(bla,bla)
Л> {
Л> //код который я ранее показал
Л> }
Л>};
Л>
Л>hWnd — это m_hWnd этого класса
Л>
Когда-то давно я тоже делал тулбар для IE, и у меня создавалось специальное окно для отлова сообщений (по примеру с codeproject.com)... В любом случае, на вашем месте я бы первым делом посмотрел при помощи Spy++, куда идут сообщения