私は現在、簡単なことをしようとしています:
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() も取得しようとしましたが、それでも同じ問題が発生します。
私のトップメニュー構造と他のすべてのメニューは機能します-それはこの特定の場合にのみです。
元のメニューが実際に機能している必要があるときに MeasureItem 関数をオーバーライドするためだけに C++ CMenu クラスを派生させたくはありません。他のバージョンでは正常に機能します。
ヘルプ?