いつもお世話になっております。
早速質問させていただきます。
作業環境は、 MFC VC++6.0 WindowsXPです。
質問内容
Enterキーの操作制御についてなのですが、
ダイアログのにある特定のボタンを押下したときのみ、Enterキーを
有効にしたいのですが、どういった記述をすればよいのか分かりません。
ご存知の方、よろしくお願いします。
BOOL CFooDialog::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_KEYDOWN )
{
switch( pMsg->wParam )
{
case VK_RETURN:
// 独自の処理
return TRUE;
default:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
こんちわ
Enter有効フラグとかいうのを作って
特定ボタン押下時にフラグON
Enter押下時の処理に フラグONなら処理を行う
これでいいのでゎ?
つばささん返信ありがとうございます。
>Enter有効フラグとかいうのを作って
>特定ボタン押下時にフラグON
>
>Enter押下時の処理に フラグONなら処理を行う
とのご指摘がありましたので、独自の処理のところに
下記のような記述をしてみたのですが、
フラグがOnになりません。
OnButton()の所で
iOk_Flg = 1
を記述しているのですが、具体的に
どこに記述すればよいのか教えてください。
case VK_RETURN:
// 独自の処理
if (iOk_Flg == 1)
{
OnButton1();
}else{
MessageBox(Enterは使用できません。, sErr);
}
return TRUE;
自己解決です。
http://forums.belution.com/ja/vc/000/134/18s.shtml
↑を参考にしました。
//独自の処理の所で
case VK_RETURN:
targetID = ::GetDlgCtrlID(pMsg->hwnd); // IDを取得する
if (targetID == IDC_BUTTON1)
{
OnButton1();
}else{
MessageBox(Enterは使用できません。, sErr);
}
return TRUE;
と記述したところ、思い通りの処理ができました。
大変お騒がせいたしました。