質問

Windows Mobile 5アプリケーション(C ++ / MFC)のメニュー項目にユーザー定義可能なキーボードショートカットを提供するルーチンを作成しています。これを行うには、使用可能なすべてのメニューコマンドIDを取得し、CWnd :: PostMessage(WM_COMMAND、MyMenuID)を使用してアプリケーションに投稿します。私はこの手法を使用して、スレッド間通信に他の場所で効果を発揮しますが、メニューコマンドIDには効果がありません。これがうまくいかない理由はありますか。アプリはドキュメントビューであり、CMainFrameおよびCView派生ウィンドウに投稿しようとしました。ひどいswitch文を書くことはできましたが、メッセージの投稿はうまくいくはずです。

編集:OK、この投稿は利用できません。今のところ大きなBigいswitchステートメントです。もっと良いものが見つかったら、もう一度更新します。

役に立ちましたか?

解決

考えられる唯一の理由は、メッセージが間違ったウィンドウに送られていることです。すべてのメニューコマンドが特定のウィンドウで常に処理されるわけではないことを忘れないでください。カットなどの一部のメニューコマンドは、通常、ビューウィンドウによって処理されます。その他はフレームウィンドウで処理され、一部はアプリケーションオブジェクトによって処理されます。

これがお役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top