CEditからのWM_KEYDOWNメッセージを取得する方法 – プログラミング – Home

通知
すべてクリア

[解決済] CEditからのWM_KEYDOWNメッセージを取得する方法


モカ
 モカ
(@モカ)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

XPにてVC6を使用してます。
コードで配置したCEditから、エンターキー等が押されたことを検知したいのですが、そ
の方法がわかりません。
タブの名前を変更する際に、タブの上にエディットボックスを置いて書き換えを行いた
いと思ってます。
書き換えること自体は可能なのですが、エディットボックスを消すタイミングに困って
います。エンターやエスケープが押されたら、と考えているのですが。
どなたかご教授ください。よろしくお願いします。


引用未解決
トピックタグ
123
 123
(@123)
ゲスト
結合: 22年前
投稿: 9
 

BOOL CKeyPad::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
}
return CDialog::PreTranslateMessage(pMsg);
}


返信引用
123
 123
(@123)
ゲスト
結合: 22年前
投稿: 9
 

BOOL CKeyPad::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
}
return CDialog::PreTranslateMessage(pMsg);
}


返信引用
123
 123
(@123)
ゲスト
結合: 22年前
投稿: 9
 

書いてる途中に誤動作しました。すいません。

確認してませんが、CEditの派生クラスでPreTranslateMessageをオーバーライドしてみ
てはどうですか。

BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam = VK_RETURN)
{
ここに処理を書く
}

return CDialog::PreTranslateMessage(pMsg);
}


返信引用
モカ
 モカ
(@モカ)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

123さん、ありがとうございました。
サブクラス化するのが面倒だったので、CViewで下のようにしました。

BOOL CMyView::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->hwnd == m_edit.m_hWnd && pMsg->wParam = VK_RETURN)
{
//終了処理
}
return CView::PreTranslateMessage(pMsg);
}

とりあえずこれで問題も起きていないので解決です。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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