
ごく普通のウィンドウプロシージャでキーの判別を行っています
下記のように条件(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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Win32APIにて、ウィンドウ全体...
-
「Aに対するBの割合」と「Aに対...
-
Aの値からBの値を除するとは??
-
2曲同時再生するにはどうした...
-
ある商品のロス率を5%見込み、...
-
有効数字について 以前質問をし...
-
int16_t の _t は何?
-
fgetsについて
-
マイナスからプラスへ転じた時...
-
三角形の判別
-
プログラムでの数字につく”f”の...
-
std::set<int> で、ある値が何...
-
c言語で、繰り返し文の中で、0....
-
2重定義って??
-
Excel VBAで、Application.Inpu...
-
C言語のwhile文を使った素数判...
-
火災保険の値上げについて
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
エクセルで可視セルにのみ値貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エディットボックスの背景の色...
-
エラー Run-Time Check Failur...
-
C#のswitch文を簡略化したいの...
-
プログラミングでエラーが出ま...
-
Win32APIでウィンドウを中央に...
-
Unicode でのWin32アプリのプロ...
-
c言語初心者です。ついに。。
-
LoadImageを使用し、タイトルバ...
-
AVRによるマトリクスLED制御
-
オーバーレイみたいな処理がしたい
-
MessageBoxについて
-
ダイアログプログラムでEnterキ...
-
Win32 APIでのVirtual-Key Co...
-
Win32のファイルダイアログのサ...
-
キャレットの現在位置の表示 (W...
-
C言語です
-
ボタンの色(WINAPI)
-
WinAPIでの画像高速切り替え表...
-
WM_KEYDOWNでPrtScを捕まえる方...
-
ウィンドウサイズを変更しても...
おすすめ情報