C言語でグラフィックス | ||
【3】グラフィックス・ウィンドウでの入力 |
キーボードの状態(GWkybrd関数)
◆サンプルプログラム 〔gr313.c〕
キーボードの状態を調べる関数(GWkybrd)を使って文字入力される値を確認する。
#include <GrWin.h> #include <stdio.h> int main(void) { int width = 640, height = 400; int moji, ch, cnt, flag; GWopen(0); GWsize(-5, &width, &height); GWsize(-3, NULL, NULL); GWvport(0.0, 0.0, (float)width / (float)height, 1.0); GWindow(0.0, 0.0, (float)width - 1.0, (float)height - 1.0); /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ GWclear(-1); do{ moji = GWkybrd(&ch, &cnt, &flag, 2); /* キーが押されるまで待つ */ printf("%X(%X %X %X) ",moji, ch, cnt, flag); /* 確認用 */ }while(moji != 'Q'); /* Qが押されたら終了 */ /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ GWquit(); return 0; }
int GWkybrd(int *文字コード, int *回数, int *フラグ, int 動作); |
実行するとき、コマンドプロンプトとGWウィンドウを下図のように重ねておくと、押したキーのデータが表示されるのが見える。
「Q」のキーを押すとプログラムは終了する。
文字コードはコマンドプロンプトに表示される。
a,b,c,1,2,3,[Esc],[↑],[↓],[←],[→],q の順に押したときの結果である。
C:\work>gr313 41(61 1 1E) 42(62 1 30) 43(63 1 2E) 31(31 1 2) 32(32 1 3) 33(33 1 4) 1B(1B 1 1) 26(1B 1 148) 28(1B 1 150) 25(1B 1 14B) 27(1B 1 14D) 51(71 1 10) C:\work> |
(参考) a=0x61, b=0x62, c=0x63, q=0x71, 1=0x31, 2=0x32, 3=0x33 文字コード A=0x41, B=0x42, C=0x43, Q=0x51, [Esc]=0x1B |
aを押したとき、コマンドプロンプトの表示 → 41(61 1 1E)
関数の返却値 41 大文字小文字の別なく、Aの文字コードが返却される。
文字コード 61 押したキーの文字コードが設定される。
回数 1 押した回数が設定される。
サンプルプログラムでは文字コードや設定されるデータを確認するため、GWkeybrd関数の動作に2を設定して、キーが押されるまで待つようにしている。
Copyright © 2005 Hiroshi Masuda |