Ko-Window プログラマーズマニュアル 「ファンクションキーの読み出し方」 ● Ko-Window のファンクションキーコード Ko-Window では、各ファンクションキーは他のキーと同様に固有のキーコードを返 すようになっています。(Human68K の場合、カーソルキーもファンクションキーの一 種です) ・EventKey 発生時 info->KeyCode の値 キー wlib.hでのシンボル 実際の値 [F1] FncKeyF(1) 0x8001 [F2] FncKeyF(2) 0x8002 [F3] FncKeyF(3) 0x8003 [F4] FncKeyF(4) 0x8004 [F5] FncKeyF(5) 0x8005 [F6] FncKeyF(6) 0x8006 [F7] FncKeyF(7) 0x8007 [F8] FncKeyF(8) 0x8008 [F9] FncKeyF(9) 0x8009 [F10] FncKeyF(10) 0x800a [F11] FncKeyF(11) 0x800b [F12] FncKeyF(12) 0x800c [F13] FncKeyF(13) 0x800d [F14] FncKeyF(14) 0x800e [F15] FncKeyF(15) 0x800f [F16] FncKeyF(16) 0x8010 [F17] FncKeyF(17) 0x8011 [F18] FncKeyF(18) 0x8012 [F19] FncKeyF(19) 0x8013 [F20] FncKeyF(20) 0x8014 [ROLL UP] FncKeyRollUp 0x8015 [ROLL DOWN] FncKeyRollDown 0x8016 [INS] FncKeyIns 0x8017 [DEL] FncKeyDel 0x8018 [↑] FncKeyUp 0x8019 [←] FncKeyLeft 0x801a [→] FncKeyRight 0x801b [↓] FncKeyDown 0x801c [CLR] FncKeyClr 0x801d [HELP] FncKeyHelp 0x801e [HOME] FncKeyHome 0x801f [UNDO] FncKeyUnDo 0x8020 そのため、アプリケーションが自分で FNCKEYGT や FNCKEYST を使って、Human68k のファンクションキー定義内容を変更してはいけません。 ● EventKey でのシフトキー判定 EventKey 発生時のキー情報パラメータは次の2つ存在します。 info->KeyCode info->ShiftStat KeyCode は押された文字のコードがそのまま入ります。漢字のように 2byte コード の場合は、2回に渡ってイベントが発生します。そのため、ファンクションキーコー ド以外の場合の KeyCode の値は必ず 0〜255 の範囲に収まることになります。 info->ShiftStat は、キーイベントがサーバーに受理された時点でのシフトキーの 状態が入っています。その bit 情報は以下の通り ・info->ShiftStat bit0 [SHIFT] bit1 [CTRL] bit2 [OPT.1] bit3 [OPT.2] bit4 [かな] bit5 [ローマ字] bit6 [コード入力] bit7 [CAPS] bit8 かな LEDの状態 bit9 ローマ字 LEDの状態 bit10 コード入力 LEDの状態 bit11 CAPS LEDの状態 bit12 INS LED の状態 bit13 ひらがな LED の状態 bit14 全角 LED の状態 これら修飾キーの情報は、EventMouseSwitch 発生時に参照してマウスクリックと 一緒に用いることもできます。(例えば [SHIFT]+左クリックなど) Ko-Window では、 マウスクリック+修飾キーの情報はほぼ次のような使われ方に統一されています。 [SHIFT]/[CTRL]+クリック ウィンドウマネージャーが使用する(ウィンドウ オペレーションやメニュー表示など) [OPT.1]/[OPT.2]+クリック アプリケーションで自由に使用できる 上記以外の修飾キー(例えば[XF1]〜[XF5]など)を用いるためには次のようにして下 さい。 corlib の KoWindowXfStat() を使用する。 ・ KoWindowXfStat() の返り値 bit2 [記号] bit3 [登録] bit5 [XF1] bit6 [XF2] bit7 [XF3] bit8 [XF4] bit9 [XF5] 1995/11/14 小笠原博之 oga@dgw.yz.yamagata-u.ac.jp DenDenNET: DEN0006 COR.