Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как связать меню и подменю?

10K
16 мая 2008 года
Archy_74
51 / / 13.12.2006
как сделать так чтобы при наведении мышкой на пункт меню сбоку вываливалось подменю?
у меня в программе есть
Код:
#define IDM_EXIT            10
#define IDM_WORK            11
#define IDM_WORK_ON     12
#define IDM_WORK_OFF        13
#define IDM_WORK_DESTROY    14
#define IDM_PROPERTY        15
...
void CSensor::OnRButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu, submenu;
//создаю меню
menu.CreatePopupMenu();
submenu.CreatePopupMenu();
//добавляю параметры основного меню

menu.AppendMenuA(MF_STRING|MF_POPUP,IDM_WORK, "Work"); //как я понимаю что-то надо вместо IDM_WORK умное написать :(
menu.AppendMenuA(MF_STRING,IDM_PROPERTY, "Property");
menu.AppendMenuA(MF_STRING ,IDM_EXIT, "Exit");

//подменю
submenu.AppendMenuA(MF_STRING|MF_CHECKED, IDM_WORK_ON,"On");
submenu.AppendMenuA(MF_STRING|MF_CHECKED, IDM_WORK_OFF,"OFF");
submenu.AppendMenuA(MF_STRING|MF_CHECKED, IDM_WORK_DESTROY,"Destroy");
//отобразить меню
this->ClientToScreen(&point);
menu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);

CWnd::OnRButtonUp(nFlags, point);
}

пробовал подставлять дескриптор подменю
menu.AppendMenuA(MF_STRING|MF_POPUP,submenu.GetSafeHmenu(), "Work");
не помагает :(
342
16 мая 2008 года
Yos
209 / / 21.06.2003
А submenu.m_hMenu вместо идентификатора не пробовал...

А почему вообще вызывается ::AppendMenuA когда везде в доках ::AppendMenu и буква в конце автоматом "подставляется" при компиляции в зависимости от типа приложения...
10K
16 мая 2008 года
Archy_74
51 / / 13.12.2006
Цитата:
submenu.m_hMenu вместо идентификатора не пробовал...


спасиб. только я сам туплю уже. надо было просто преобразовать к типу UINT_PTR
menu.AppendMenu(MF_STRING|MF_POPUP,UINT_PTR(submenu.GetSafeHmenu()), "Work");
или
menu.AppendMenu(MF_STRING|MF_POPUP,UINT_PTR(submenu.m_hMenu), "Work");


Цитата:
А почему вообще вызывается ::AppendMenuA когда везде в доках ::AppendMenu и буква в конце автоматом "подставляется" при компиляции в зависимости от типа приложения...


А мне студия во всплывающей подсказке про доступные методы класса CMenu только AppendMenuA предлагает.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог