適当に日々あったこととか書いてます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
SHORT GetKeyState(
int nVirtKey // 仮想キーコード
);
指定された仮想キーの状態を取得します。状態とは、キーが押されているか、押されていないか、トグルになっているかどうか( オンとオフの 2 つがあり、キーを押すたびに入れ替わります)を表します。
<パラメータ>
・nVirtKey
[入力]仮想キーコードを指定します。
希望の仮想キーが文字キーまたは数字キー(A~Z、a~z、0~9)である場合、nVirtKey にその文字の ASCII コードを指定しなければなりません。他のキーの場合は、仮想キーコードを指定しなければなりません。
ヨーロッパなどの英語以外のキーボードレイアウトを使っている場合、A~Z と 0~9 の各範囲に相当する ASCII コードは、アクセント付きを含め、ほとんどの文字を表すために使われています。
たとえば、ドイツ語のキーボードレイアウトでは、ASCII の「O」(0x4F)の値に相当する仮想キーは「o」キーを意味しますが、VK_OEM_1 は「ウムラウト(¨)付きの o」キーを意味します。
<戻り値>
戻り値は、指定された仮想キーの状態を表します。各値は次のことを意味します。
最上位ビット(0x0080?)が 1 のときはキーが押されていることを、0 のときはキーが押されていないことを示します。
最下位ビット(0x0001)が 1 のときはキーがトグル状態にあることを示します。
たとえば、CapsLock キーが ON になっているときは、トグル状態になります。
最下位ビットが 0 のときはキーが OFF になっていて、トグルが解除されていることを示します。
キーボードにトグルキーのインジケータランプが用意されている場合、キーがトグル状態になっているとランプは点灯し、トグル解除状態ではランプは消灯します。
<解説>
スレッドがメッセージキューからキーメッセージを読み出すたびに、この関数が返すキーの状態は変化します。
キーの状態は、ハードウェアによる割り込みレベルの状態を反映しません。
割り込みレベルの情報を取得するには、GetAsyncKeyState 関数を使ってください。
アプリケーションは、キーボード入力メッセージに応じて GetKeyState を呼び出します。この関数は、入力メッセージが生成されたときのキーの状態を取得します。
すべての仮想キーの状態を取得するには、GetKeyboardState 関数を使います。
<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダーファイル:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
引用:ttp://msdn.microsoft.com/ja-jp/library/cc364676.aspx
<使用メモ>
最上位ビットって書かれてるけど、実際取得すると
0x0000(初回)→0x0081(押す)→0x0081(押してる)→0x0001(放す)
ってなってる気がする(while文で永久ループで取得し続けた場合)。
int nVirtKey // 仮想キーコード
);
指定された仮想キーの状態を取得します。状態とは、キーが押されているか、押されていないか、トグルになっているかどうか( オンとオフの 2 つがあり、キーを押すたびに入れ替わります)を表します。
<パラメータ>
・nVirtKey
[入力]仮想キーコードを指定します。
希望の仮想キーが文字キーまたは数字キー(A~Z、a~z、0~9)である場合、nVirtKey にその文字の ASCII コードを指定しなければなりません。他のキーの場合は、仮想キーコードを指定しなければなりません。
ヨーロッパなどの英語以外のキーボードレイアウトを使っている場合、A~Z と 0~9 の各範囲に相当する ASCII コードは、アクセント付きを含め、ほとんどの文字を表すために使われています。
たとえば、ドイツ語のキーボードレイアウトでは、ASCII の「O」(0x4F)の値に相当する仮想キーは「o」キーを意味しますが、VK_OEM_1 は「ウムラウト(¨)付きの o」キーを意味します。
<戻り値>
戻り値は、指定された仮想キーの状態を表します。各値は次のことを意味します。
最上位ビット(0x0080?)が 1 のときはキーが押されていることを、0 のときはキーが押されていないことを示します。
最下位ビット(0x0001)が 1 のときはキーがトグル状態にあることを示します。
たとえば、CapsLock キーが ON になっているときは、トグル状態になります。
最下位ビットが 0 のときはキーが OFF になっていて、トグルが解除されていることを示します。
キーボードにトグルキーのインジケータランプが用意されている場合、キーがトグル状態になっているとランプは点灯し、トグル解除状態ではランプは消灯します。
<解説>
スレッドがメッセージキューからキーメッセージを読み出すたびに、この関数が返すキーの状態は変化します。
キーの状態は、ハードウェアによる割り込みレベルの状態を反映しません。
割り込みレベルの情報を取得するには、GetAsyncKeyState 関数を使ってください。
アプリケーションは、キーボード入力メッセージに応じて GetKeyState を呼び出します。この関数は、入力メッセージが生成されたときのキーの状態を取得します。
すべての仮想キーの状態を取得するには、GetKeyboardState 関数を使います。
<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダーファイル:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
引用:ttp://msdn.microsoft.com/ja-jp/library/cc364676.aspx
<使用メモ>
最上位ビットって書かれてるけど、実際取得すると
0x0000(初回)→0x0081(押す)→0x0081(押してる)→0x0001(放す)
ってなってる気がする(while文で永久ループで取得し続けた場合)。
PR
この記事にコメントする