XPにてVC6を使用してます。
コードで配置したCEditから、エンターキー等が押されたことを検知したいのですが、そ
の方法がわかりません。
タブの名前を変更する際に、タブの上にエディットボックスを置いて書き換えを行いた
いと思ってます。
書き換えること自体は可能なのですが、エディットボックスを消すタイミングに困って
います。エンターやエスケープが押されたら、と考えているのですが。
どなたかご教授ください。よろしくお願いします。
BOOL CKeyPad::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
}
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CKeyPad::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
}
return CDialog::PreTranslateMessage(pMsg);
}
書いてる途中に誤動作しました。すいません。
確認してませんが、CEditの派生クラスでPreTranslateMessageをオーバーライドしてみ
てはどうですか。
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam = VK_RETURN)
{
ここに処理を書く
}
return CDialog::PreTranslateMessage(pMsg);
}
123さん、ありがとうございました。
サブクラス化するのが面倒だったので、CViewで下のようにしました。
BOOL CMyView::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->hwnd == m_edit.m_hWnd && pMsg->wParam = VK_RETURN)
{
//終了処理
}
return CView::PreTranslateMessage(pMsg);
}
とりあえずこれで問題も起きていないので解決です。
ありがとうございました。