Рейтинг:
12
Jochen Arndt
Ошибка, вероятно, в этой строке
CMenu *pSub = menu.GetSubMenu(1);
Когда меню, загруженное из ресурсов, содержит только одно всплывающее меню (что является обычным случаем)
GetSubMenu()
возвращается
NULL
.
Так что сдайте позицию
0
вместо.
[РЕДАКТИРОВАТЬ]
При использовании
TrackPopupMenu[Ex]
, меню должно быть всплывающим меню, полученным вызовом
CMenu::GetSubMenu()
или будучи созданным с помощью
CMenu::CreatePopupMenu
Использование обычного меню не будет работать.
[/РЕДАКТИРОВАТЬ]
Premnath Mali
Если я прошел 0 все равно получаю ту же ошибку
Jochen Arndt
Тогда у вас, вероятно, не было всплывающего меню в вашем ресурсе IDR_MENU_POPUP.
При открытии RC-файла с помощью текстового редактора он должен выглядеть следующим образом:
МЕНЮ IDR_MENU_POPUP
НАЧАТЬ
Всплывающее окно " menu_name"
НАЧАТЬ
MENUITEM "item text" ITEM_CMD_ID
// ...
КОНЕЦ
КОНЕЦ
Если это не похоже на описанное выше, используйте редактор ресурсов для создания всплывающего меню.
Premnath Mali
Сэр я просто хочу всплывающее меню которое будет всплывать при щелчке правой кнопкой мыши это кажется мы создаем меню а затем внутри этого попоп меню
Я создал меню только с тремя опциями максимизировать минимизировать и выйти вот и все, и я хочу, когда пользователь щелкает правой кнопкой мыши в любом месте диалогового окна, я хочу показать эти меню, как мне это сделать?
Premnath Mali
МЕНЮ IDR_MENU_POPUP
НАЧАТЬ
MENUITEM "Ma& ximize", ID_MAXIMIZE
Пункт меню "мин&усилителя;как на счет минимизировать", ID_MINIMIZE
MENUITEM "E& xit", ID_EXIT
КОНЕЦ
Вот мой код ресурса
Jochen Arndt
Вероятно, вы создали" обычное " меню. Но вы должны создать всплывающее меню.
Специфика Windows заключается в том, что вы должны создать ресурс меню (с пустым "нормальным" меню, не указывая заголовок), который содержит всплывающее меню (или даже больше). См. также https://msdn.microsoft.com/en-us/library/k5az22fk.aspx.
Если вы не хотите этого делать, вы можете использовать CMenu::CreatePopupMenu() и добавить пункты меню в свою программу. Но использование ресурса-это распространенная и более портативная версия.
Premnath Mali
Спасибо теперь я получил именно то что хотел