コンテキストメニューを持つMFCダイアログベースのアプリケーションがあります。コンテキストメニューのエントリは、モーダルダイアログボックスを表示します。しかし、その2番目のダイアログボックスのどこかでマウスをクリックしても何もしません。メインメニューから同じダイアログボックスを表示することは素晴らしいです。これは、コンテキストメニューが何とかマウスのクリックを盗むようなものです。私はそれがコンテキストメニューが表示されますしているコードは次のとおりです。コンテキストメニューから作成されたダイアログボックスでマウスがクリックされる
void Cxxx::OnContextMenu(CWnd* pWnd, CPoint ptScreen)
{
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MAIN_WINDOW_RIGHT_MOUSE));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, ptScreen.x, ptScreen.y, this);
}
コンテキストメニュー、ダイアログボックスを開き使用しているコード:
void Cxxx::OnPaste()
{
CPasteDlg Dlg;
...
if (Dlg.DoModal() != IDOK){
...
}
}
OnPasteコードはまったく同じAPIであることメインメニューが使用され、メインメニューから正常に動作します。
私が間違っていることを知っている人は、マウスがペースト・ダイアログ内で動作するのを妨げているのですが、コンテキストメニューから表示されるときはいつもですか?
私はVisual Studio 11をWin7-64ビットで使用しています。
お手数ですがお寄せいただきありがとうございます。
dlgコンストラクタに正しい親ウィンドウを指定すると、他のポップアップウィンドウが表示されたときに問題が発生する可能性があります。 – xMRi
* CPasteDlg dlg(this); *を試しましたか? – JazzSoft