1

私は現在、簡単なことをしようとしています:

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 クラスを派生させたくはありません。他のバージョンでは正常に機能します。

ヘルプ?

ここに画像の説明を入力

4

1 に答える 1