掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ペイン内でのアクセラレータキー入力 (ID:72711)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在、テストプログラムで以下のような問題を抱えています。 ・VC2008でSDI標準のプロジェクトを作成し、リソースエディタ上で ID_APP_ABOUTのアクセラレータにVK_UPを割り当て、ビルドして実行。 ・上キーを押すとバージョン情報ダイアログが表示される。 ・ところがこの状態だと、クラスビューのツリー上で上キーを押しても、 ツリー内の移動ではなくバージョン情報ダイアログが表示されてしまう。 ・そこで、CMainFrame::PreTranslateMessageを追加し、以下のようにした。 BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST) { if (m_wndClassView.IsDialogMessage(pMsg)) { return TRUE; } } return CFrameWndEx::PreTranslateMessage(pMsg); } ・ツリー上では上キーでもツリー内の移動をしてくれるようになった。 ・しかし、他のアクセラレータキー(Ctrl+OやCtrl+Pなど)も ツリー上では無視されてしまう。 Ctrl+OやCtrl+Pなど、ダイアログ自身が処理していないはずのメッセージも、 IsDialogMessageで処理されてしまうものなのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.