プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

仮想キーの状態を取得

2011年12月08日 00時52分00秒 | キーボード関連

仮想キーの状態を取得するには GetKeyState 関数を使います。
仮想キーの代表として[SHIFT]キー、[CTRL]キー、[ALT]キーのシフトキーがあります。
これらを必要なタイミングで状態を調べるときに仮想キーの状態を取得します。(戻る)

プロトタイプ宣言

SHORT GetKeyState(
    int     nVirtKey    // 仮想キーコード
);

使い方

if ( GetKeyState(VK_SHIFT) < 0 ){
    // [SHIFT]キーが押されてる。
}
else{
    // [SHIFT]キーが押されてない。
}
  • 上記の使い方では[SHIFT]キーの状態を調べたいので VK_SHIFT 定数を使ってます。
  • また[CTRL]キーの状態を調べるには VK_CONTROL 定数を使います。
  • あと[ALT]キーの状態を調べるには VK_MENU 定数を使います。

英数字の仮想キー定数

  • 数字キーの「VK_0」から「VK_9」の仮想キー定数は WinUser.h には定義されてません。
    そこで文字定数の '0'~'9' を使って 0x30 ~ 0x39 を表します。
  • 英字キーの「VK_A」から「VK_Z」の仮想キー定数は WinUser.h には定義されてません。
    そこで文字定数の 'A'~'Z' を使って 0x41 ~ 0x5A を表します。(必ず大文字を使うこと)

仮想キーの定数

定数意味
マウス・ボタン
VK_LBUTTONマウスの左ボタン
VK_RBUTTONマウスの右ボタン
VK_MBUTTONマウスの中央ボタン
VK_XBUTTON1マウスの左サイドボタン(Windows 2000/XP以降)
VK_XBUTTON2マウスの右サイドボタン(Windows 2000/XP以降)
シフトキー
VK_SHIFT[Shift]
VK_CONTROL[Ctrl]
VK_MENU[Alt]
VK_NUMLOCK[Num Lock]
VK_CAPITAL[Caps Lock]
VK_SCROLL[Scroll Lock]
左右シフトキー
VK_LSHIFT左[Shift]
VK_RSHIFT右[Shift]
VK_LCONTROL左[Ctrl]
VK_RCONTROL右[Ctrl]
VK_LMENU左[Alt]
VK_RMENU右[Alt]
IMEモード
VK_KANAIMEかなモード
VK_HANGEUL
VK_HANGUL
IMEハングル・モード
VK_JUNJAIEM
VK_FINALIEM
VK_HANJAIEM
VK_KANJIIME漢字モード
VK_CONVERTIME変換[XFER]
VK_NONCONVERTIME無変換[NFER]
VK_ACCEPTIME
VK_MODECHANGEIMEモード変更
特殊キー
VK_CANCEL[Ctrl]+[Break]
VK_ESCAPE[Esc]
VK_TAB[Tab]
VK_BACK[Back Space]
VK_SPACEスペース
VK_RETURN[Enter]
VK_CLEAR[Clear]とは[Num Lock]を外した状態のテン[5]
VK_PAUSE[Pause]
VK_PRINT[Print]
VK_SELECT[Select]
VK_EXECUTE[Execute]
VK_SNAPSHOT[Print Screen]
VK_LWIN左のWindowsキー
VK_RWIN右のWindowsキー
VK_APPSApplicationsキー(アプリケーション・キー)ポップアップ・メニューが開く
VK_SLEEPコンピュータのスリープ・キー
移動キー
VK_UP[↑]
VK_DOWN[↓]
VK_LEFT[←]
VK_RIGHT[→]
VK_PRIOR[Page Up]
VK_NEXT[Page Down]
VK_HOME[Home]
VK_END[End]
VK_HELP[Help]
VK_INSERT[Insert]
VK_DELETE[Delete]
テンキー
VK_NUMPAD0テンキーの[0]
VK_NUMPAD1テンキーの[1]
VK_NUMPAD2テンキーの[2]
VK_NUMPAD3テンキーの[3]
VK_NUMPAD4テンキーの[4]
VK_NUMPAD5テンキーの[5]
VK_NUMPAD6テンキーの[6]
VK_NUMPAD7テンキーの[7]
VK_NUMPAD8テンキーの[8]
VK_NUMPAD9テンキーの[9]
VK_MULTIPLYテンキーの[*]
VK_ADDテンキーの[+]
VK_SEPARATORテンキーの[,]
VK_SUBTRACTテンキーの[-]
VK_DECIMALテンキーの[.]
VK_DIVIDEテンキーの[/]
ファンクションキー
VK_F1[F1]
VK_F2[F2]
VK_F3[F3]
VK_F4[F4]
VK_F5[F5]
VK_F6[F6]
VK_F7[F7]
VK_F8[F8]
VK_F9[F9]
VK_F10[F10]
VK_F11[F11]
VK_F12[F12]
VK_F13[F13]
VK_F14[F14]
VK_F15[F15]
VK_F16[F16]
VK_F17[F17]
VK_F18[F18]
VK_F19[F19]
VK_F20[F20]
VK_F21[F21]
VK_F22[F22]
VK_F23[F23]
VK_F24[F24]
ブラウザキー
VK_BROWSER_BACKブラウザの[戻る]キー
VK_BROWSER_FORWARDブラウザの[進む]キー
VK_BROWSER_REFRESHブラウザの[更新]キー
VK_BROWSER_STOPブラウザの[中止]キー
VK_BROWSER_SEARCHブラウザの[検索]キー
VK_BROWSER_FAVORITESブラウザの[お気に入り]キー
VK_BROWSER_HOMEブラウザの[起動/ホーム]キー
音量キー
VK_VOLUME_MUTE音量ミュート・キー
VK_VOLUME_DOWN音量ダウン・キー
VK_VOLUME_UP音量アップ・キー
メディアキー
VK_MEDIA_NEXT_TRACKメディアの[次のトラック]キー
VK_MEDIA_PREV_TRACKメディアの[前のトラック]キー
VK_MEDIA_STOPメディアの[メディア停止]キー
VK_MEDIA_PLAY_PAUSEメディアの[メディア再生/一時停止]キー
ランチャーキー
VK_LAUNCH_MAILランチャの[メール起動]キー
VK_LAUNCH_MEDIA_SELECTランチャの[メディア選択]キー
VK_LAUNCH_APP1ランチャの[アプリケーション(1)起動]キー
VK_LAUNCH_APP2ランチャの[アプリケーション(2)起動]キー
その他
VK_OEM_1[:][*]※米国標準キーボードでは[;][:]キー(様々な文字に使用されてキーボードによって異なる)
VK_OEM_2[/][?]※様々な文字のために使用できます。(米国標準キーボードでは[/][?])
VK_OEM_3[@][`]※様々な文字のために使用できます。(米国標準キーボードでは[`][~])
VK_OEM_4[[][{]※様々な文字のために使用できます。(米国標準キーボードでは[[][{])
VK_OEM_5[\][|]※様々な文字のために使用できます。(米国標準キーボードでは[\][|])
VK_OEM_6[]][}]※様々な文字のために使用できます。(米国標準キーボードでは[]][}])
VK_OEM_7[^][~]※様々な文字のために使用できます。(米国標準キーボードでは[']["])
VK_OEM_8※様々な文字のために使用できます。
VK_OEM_PLUS[;][+]※任意の国/地域のキーボードで[+]キー
VK_OEM_MINUS[-][=]※任意の国/地域のキーボードで[-]キー
VK_OEM_COMMA[,][<]※任意の国/地域のキーボードで[,]キー
VK_OEM_PERIOD[.][>]※任意の国/地域のキーボードで[.]キー

仮想キーの定義は WinUser.h (369行~640行)にあります。(NOVIRTUALKEYCODESを検索すれば良い)

関連記事

参考文献



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 拡張ウインドウ・スタイルの... | トップ | ウインドウの移動範囲を制御 »
最新の画像もっと見る

コメントを投稿

キーボード関連」カテゴリの最新記事