MFCの基礎 - キーボード
提供: MochiuWiki : SUSE, EC, PCB
概要
MFCにおけるキーボードに関する処理を記載する。
仮想キーの取得
仮想キーには、[Shift]キー、[Ctrl]キー、[Alt]キー等がある。
仮想キーを取得するには、GetKeyState関数を使用する。
SHORT GetKeyState(
int nVirtKey // 仮想キーコード
);
以下の例では、定数VK_SHIFTを使用して、[Shift]キーか押下されているかどうかを確認している。
また、[Ctrl]キーの状態を調べる場合は定数VK_CONTROL、[Alt]キーの状態を調べる場合は定数VK_MENUを使用する。
if(GetKeyState(VK_SHIFT) < 0)
{ // [Shift]キーが押下されている場合
}
else
{ // [Shift]キーが押下されていない場合
}
※注意
数字キーの仮想キー定数は、WinUser.hには定義されていないため、0x30~0x39を使用する。
同様に、英字キーの仮想キー定数は、WinUser.hには定義されていないため、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_KANA | IMEかなモード |
| VK_HANGEUL VK_HANGUL |
IMEハングル・モード |
| VK_JUNJA | IEM |
| VK_FINAL | IEM |
| VK_HANJA | IEM |
| VK_KANJI | IME漢字モード |
| VK_CONVERT | IME変換[XFER] |
| VK_NONCONVERT | IME無変換[NFER] |
| VK_ACCEPT | IME |
| VK_MODECHANGE | IMEモード変更 |
| 特殊キー | |
| 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 | 左のSuperキー |
| VK_RWIN | 右のSuperキー |
| VK_APPS | Applicationsキー(アプリケーション・キー)ポップアップ・メニューが開く |
| 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 | [.][>] ※任意の国/地域のキーボードで[.]キー |