Je tente de faire actuellement quelque chose de simple:C++ CMenu Dessin de manière incorrecte (non personnalisée)
CMenu menu;
menu.LoadMenu(IDR_MENU_IMAGE);
CPoint pt;
GetCursorPos(&pt);
menu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
Lorsque je clic droit, je reçois l'image ci-dessous. Cependant, le menu est chargé; lorsque je déplace mon curseur dans le menu, vous pouvez le voir remplir correctement les sous-menus. Il le fait avec n'importe quel menu que je charge dynamiquement comme ça. J'ai essayé de créer un pointeur (CMenu *) et continue toujours d'avoir ce problème.
Les points n'ont pas d'importance (j'ai entré des points arbitraires).
Le "ceci" en question est une classe CView * dérivée. Je suis en train de cliquer sur un objet HWND mais j'ai aussi essayé de prendre le CWnd :: FromHandle() de cet objet particulier sur lequel je clique et que l'objet le gère, mais j'ai toujours le même problème.
Ma structure de menu principal et tous les autres menus fonctionnent - c'est seulement dans ce cas particulier.
Je ne veux pas vraiment dériver une classe C++ CMenu juste pour remplacer la fonction MeasureItem lorsque les menus originaux doivent effectivement travailler, et ne fonctionnent très bien dans d'autres versions ..
aide?
L'image que vous avez affichée ne correspond pas vraiment le contenu de votre question. –
Vous ne savez pas ce que vous voulez dire en plus de ne pas mentionner un menu presque vide. Cependant, j'ai compris que le problème était simplement que j'ai oublié d'inclure une option sans nom comme le premier menu selon https://msdn.microsoft.com/en-us/library/k5az22fk.aspx. – RootAtShell
Je veux dire que l'image contient principalement de la malbouffe et peut-être 1/3 d'un menu. –