Enterキーの操作処理 – プログラミング – Home

通知
すべてクリア

[解決済] Enterキーの操作処理


バンヴィ
 バンヴィ
(@バンヴィ)
ゲスト
結合: 18年前
投稿: 19
Topic starter  

いつもお世話になっております。
早速質問させていただきます。

作業環境は、 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);
}


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

こんちわ

Enter有効フラグとかいうのを作って
特定ボタン押下時にフラグON

Enter押下時の処理に フラグONなら処理を行う

これでいいのでゎ?


返信引用
バンヴィ
 バンヴィ
(@バンヴィ)
ゲスト
結合: 18年前
投稿: 19
Topic starter  

つばささん返信ありがとうございます。

>Enter有効フラグとかいうのを作って
>特定ボタン押下時にフラグON
>
>Enter押下時の処理に フラグONなら処理を行う

とのご指摘がありましたので、独自の処理のところに
下記のような記述をしてみたのですが、
フラグがOnになりません。
OnButton()の所で
iOk_Flg = 1
を記述しているのですが、具体的に
どこに記述すればよいのか教えてください。

case VK_RETURN:
 // 独自の処理
 if (iOk_Flg == 1)
 {
  OnButton1();
 }else{
  MessageBox(Enterは使用できません。, sErr);
 }
return TRUE;


返信引用
バンヴィ
 バンヴィ
(@バンヴィ)
ゲスト
結合: 18年前
投稿: 19
Topic starter  

自己解決です。

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;

と記述したところ、思い通りの処理ができました。

大変お騒がせいたしました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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