MFCの基礎 - キーボード

提供:MochiuWiki : SUSE, EC, PCB
2021年7月19日 (月) 14:55時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == MFCにおけるキーボードに関する処理を記載する。<br> <br><br> == 仮想キーの取得 == 仮想キーには、[Shift]キー、[Ctrl]キ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

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には定義されていないため、0x300x39を使用する。
同様に、英字キーの仮想キー定数は、WinUser.hには定義されていないため、0x410x5Aを使用する。(必ず大文字を使用すること)

下表に、仮想キーの定数を示す。

仮想キーの定数
定数 意味
マウス
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]