OnKeyDownについて – プログラミング – Home

通知
すべてクリア

[解決済] OnKeyDownについて


bb
 bb
(@bb)
ゲスト
結合: 20年前
投稿: 18
Topic starter  

質問します。
[VC++6.0、WindowsXP]

CMainFrmにおいて、OnKeyDown()を準備したのですがキーを押下しても、とんできませ
ん。
もちろん、Viewクラスでは問題ありませんが、どうしても、OnKeyDown()をCMainFrmに置
く必要があるのです。
基本クラスのCWndクラスにはOnKeyDown()があるのですが....。
だれか、この理由および対処方法など、お教え願います。


引用未解決
トピックタグ
switch
 switch
(@switch)
ゲスト
結合: 19年前
投稿: 16
 

View側OnKeyDownで受け取って
((CMainFrame*)AfxGetApp()->GetMainWnd())->OnKeyDown(nChar, nRepCnt, nFlags);
でいいんじゃないかな?
当然MainFrame側にも
OnKeyDown(nChar, nRepCnt, nFlags);
をpublicで実装するとして


返信引用
bb
 bb
(@bb)
ゲスト
結合: 20年前
投稿: 18
Topic starter  

bbです。
switchさんありがとうございます。

少し説明が足りませんでした。
追加説明をします。
本件のシステムでは、Viewクラスが30個ほどあり、今後も増える予定です。
この状態で、どのViewクラスにフォーカスがあたっている時でも、同じキー処理を
したいのです。したがってこのキー処理を1箇所で行いたいのです。
引き続き、よろしくお願いします。


返信引用
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

PreTranslateMessageを使うという方法があります。

もしくは、ショートカットキーのようなものを実現したいのであれば、
アクセラレータを使う方法もあります。


返信引用
switch
 switch
(@switch)
ゲスト
結合: 19年前
投稿: 16
 

>本件のシステムでは、Viewクラスが30個ほどあり、今後も増える予定です。
そういうことであれば、Kerryさんの書いたとおり
PreTranslateMessageでWM_KEYDOWNを捕まえるのが一番手っ取り早いと思います。


返信引用
bb
 bb
(@bb)
ゲスト
結合: 20年前
投稿: 18
Topic starter  

bbです。
Kerryさん
PreTranslateMessageを使い、思い通りにいきました。
どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました