В настоящее время я пытаюсь сделать что-то простое:C++ CMenu Drawing Некорректно (Non-пользовательский)
CMenu menu;
menu.LoadMenu(IDR_MENU_IMAGE);
CPoint pt;
GetCursorPos(&pt);
menu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
Когда я правой кнопкой мыши, я получаю ниже изображение. Однако меню загружается; когда я перемещаю курсор вниз по меню, вы можете видеть, что он заполняет подменю просто отлично. Он делает это с любым меню, которое я динамически загружаю. Я попытался создать указатель (CMenu *) и по-прежнему продолжать эту проблему.
Точки не имеют значения (я ввожу произвольные точки).
«Это» - это производный класс CView *. Я нажимаю на объект HWND, но я попытался также взять CWnd :: FromHandle() этого конкретного объекта, на который я нажимаю, и иметь объект обрабатывать его, но у меня все еще такая же проблема.
Моя главная структура меню и все другие меню работают - это только в этом конкретном случае.
Я действительно не хочу, чтобы получить класс C++ CMenu просто переопределить функцию MeasureItem, когда оригинальное меню должно быть на самом деле работает, и работают нормально в других версиях ..
Помощь?
изображения вы вывесили на самом деле не соответствуют содержанию вашего вопроса. –
Не знаете, что вы имеете в виду, кроме меня, не говоря уже о меню с нулевой шириной. Тем не менее, я выяснил, что проблема состояла в том, что я забыл включить параметр no-name в качестве самого первого меню в соответствии с https://msdn.microsoft.com/en-us/library/k5az22fk.aspx. – RootAtShell
Я имею в виду, что изображение содержит главным образом нежелательную и, возможно, 1/3 меню. –