Breakキーに対するキーコードは? – プログラミング – Home

Breakキーに対するキーコードは?
 
通知
すべてクリア

[解決済] Breakキーに対するキーコードは?


たま
 たま
(@たま)
ゲスト
結合: 23年前
投稿: 50
Topic starter  

MFC AppWizardでダイアログの画面を作成しています。
下記のようにPreTranslateMessageで以下のようにreturnキーとescapeキーが押されてもダイアログが
終了しないように回避処理を行っています。
しかしBreakキーのキーコードがわからずBreakキーが押されるとダイアログが落ちてしまいます。
MSDNをひと通り探しましたが該当するものがありません。VK_BREAKでもありませんでしたし・・・
どなたかBreakキーのキーコードを教えてください。宜しくお願いします。

BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{

// ■追加 リターンキー、エスケープキーの終了処理回避/////////////////////////////////////
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_RETURN:
return TRUE; // TRUEで本来の機能を抑止。returnキーの抑止
break;
case VK_ESCAPE:
return TRUE; // TRUEで本来の機能を抑止。Escキーの抑止
break;
}
}


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

> Breakキーが押されるとダイアログが落ちてしまいます。

Breakキーってどーれですか?

落ちるとは?エラーが発生するのですか?


返信引用
たま
 たま
(@たま)
ゲスト
結合: 23年前
投稿: 50
Topic starter  

今気づいたのですが、機種によって違いますね。
手元にあるPCだと、ディスクトップでCtrl+Pause。
ノートでFn+Pauseでブレイクキーになります。
言葉足らずでした。落ちるというのはブレイクキーを押したら、
OnCancelやダイアログ右上のXボタンを押したときのように
ダイアログが終了してしまうことをいいました。

PreTranslateMessageの中で、次のようなコードを書いて
押されたボタンの戻り値を確認しようとしていたのですが、
(Escキーが押された場合27、Enterだと13といった感じ)
Fn+Pauseだと数値が表示されないのでブレイクキーそのものに
対応するキーコードはないようですね。
ブレイクキーに対応しようとするとキーコードの組み合わせしか
方法がない・・ということですかね?

CString ss;
ss.Format(%d,pMsg->wParam);
MessageBox(ss,",MB_OK);


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

私の環境はデスクトップなのでCtrl+Pauseを調べました。

case WM_KEYDOWN:
  TRACE(0x%02x, pMsg->wParam); // <---試して見てください
  return TRUE;

メッセージボックスだとデバッグしずらかったので(^^;
アウトプットウィンドウに出力しました。

Ctrl+Pause = 0x03 これはwinuser.hで定義されているVK_CANCELでした。

つーことで VK_CANCELの時にreturn TRUEすれば終了しませんでした。


返信引用
たま
 たま
(@たま)
ゲスト
結合: 23年前
投稿: 50
Topic starter  

Bunさんどうもありがとうございました。
ノートでもVK_CANCELのreturn TRUEで終了処理を回避することができました。

しかし毎日見ているのに作ってみると気づかないものが多いですね。
メッセージボックスでもEscキーやBreakキーで終了してしまうのですから・・・
私はメッセージボックスの確認画面でOKを押された場合、次の処理へすすみ
実際にその処理を実行したかどうかを知るために構造体にint型のメンバを用意
して値を格納していたのですが、これで見直さなければいけなくなりました^^;)


返信引用
bosscat
 bosscat
(@bosscat)
ゲスト
結合: 23年前
投稿: 73
 

VK_??
って
@[]:;
とかのKey定義されてない気がする
これって日本語Keybord特有なんですか?
少なくともVC++6.0の
WINUSER.H
には
定義されてなかった


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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