
ごく普通のウィンドウプロシージャでキーの判別を行っています
下記のように条件(1)が WM_KEYUP の際には(2)、(3)ともに検出します
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg)
{
case WM_KEYUP: ............ (1)
switch(wp)
{
case VK_RETURN:
{ break; } ..... (2)
case VK_SNAPSHOT:
{ break; } ..... (3)
default:
{ break; }
}
break;
}
return;
ところが条件(1)を WM_KEYDOWN に変更すると(2)の Enter は検出しますが、(3)の PrtSc を検出してくれません
質問1 なぜ PrtSc を WM_KEYDOWN では検出しないのですか?
質問2 WM_KEYUP WM_KEYDOWN のいずれか一方にしか反応しないキーはまだありますか?
質問3 どのようにしたら PrtSc の WM_KEYDOWN を捕まえることが出来ますか?
自分でも調べてみましたが、どうも判然と致しません
宜しくご指導のほどお願い申し上げます
No.1ベストアンサー
- 回答日時:
質問1 なぜ PrtSc を WM_KEYDOWN では検出しないのですか?
理由はわかりませんがそういう仕様なのかも。
質問2 WM_KEYUP WM_KEYDOWN のいずれか一方にしか反応しないキーはまだありますか?
テストプログラムで全てのVK_~でWM_KEYUPとWM_KEYDOWNを試せばわかります。
質問3 どのようにしたら PrtSc の WM_KEYDOWN を捕まえることが出来ますか?
正当な手段かどうかは別にして、例えば
RegisterHotKey()でVK_SNAPSHOTをホットキーに登録すれば
キーを押下したタイミングでWM_HOTKEY発生します。
#define ID_HOTKEY_SNAPSHOT 1
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
hWnd = CreateWindow(…);
RegisterHotKey(hWnd, ID_HOTKEY_SNAPSHOT, 0, VK_SNAPSHOT);
…
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_HOTKEY:
if( ID_HOTKEY_SNAPSHOT = wParam )
{…}
break;
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- その他(プログラミング・Web制作) powershell で書いたプログラムでcd が動かない 5 2023/04/08 14:47
- 発達障害・ダウン症・自閉症 数ヶ月前、ASD/ADHDの検査と共に、IQテストのようなものも受けたのですが、見方がよく分からない 2 2022/08/08 11:20
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript addEventListener()でリスナー関数に名前を付ける構文を教えてください 1 2023/07/01 17:31
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダイアログプログラムでEnterキ...
-
ボタンのアイコン表示
-
プログラミングでエラーが出ま...
-
Enterキーを押されたら次の処理...
-
エクセルで可視セルにのみ値貼...
-
2÷3などの余りについて
-
*をユーザーが入力した数字の数...
-
Aの値からBの値を除するとは??
-
C言語を実行すると-infが出てき...
-
「指定されたキャストは有効で...
-
値差の%計算方法について
-
「Aに対するBの割合」と「Aに対...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
DWORDの実際の型は何でしょうか
-
数字以外が入力されたらエラー...
-
2進数の足し算(C言語)
-
正負を反転させて出力するプロ...
-
#define _CRT_SECURE_NO_WARNIN...
-
プログラムでの数字につく”f”の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エディットボックスの背景の色...
-
ダイアログプログラムでEnterキ...
-
エラー Run-Time Check Failur...
-
プログラミングでエラーが出ま...
-
ボタンの色(WINAPI)
-
Win32APIでウィンドウを中央に...
-
C言語win32api、エディットボッ...
-
C#のswitch文を簡略化したいの...
-
ウィンドウ非表示に時に表示し...
-
不明なエラー
-
COMPORTマルチスレッドで例外発生
-
WM_CREATE について
-
コンソールアプリケーションの...
-
別関数に渡す変数のポインタが...
-
作成プログラムを常にアクティ...
-
DialogBox
-
【Windowsアプリ】ファイルのド...
-
オーバーレイみたいな処理がしたい
-
ボタンのアイコン表示
-
ウィンドウのサイズ変更について
おすすめ情報