C言語でグラフィックス 目次へ 
 前へ 【3】グラフィックス・ウィンドウでの入力 次へ 

(3)キーボードとマウスによる入力(GWevent関数)

◆サンプルプログラム 〔gr331.c〕
 キーボードとマウスの情報を取得する関数(GWevent)を使って取得できる値を確認する。

#include <GrWin.h>
#include <stdio.h>

int main(void)
{
    int     width = 640, height = 400;
    int     ret;
    float   mx, my;

    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);
    GWsetmsg("右クリックすると終了します。");
    do{
        ret = GWevent(&mx, &my);
        if(ret != 0)
            printf("%d(x=%5.2f y=%5.2f) ", ret, mx, my);
    }while(ret != -2);
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWquit();
    return 0;
}
int GWevent(float *X, float *Y);
GWウィンドウのイベント状態を取得する。インターバルタイマーの設定時間が経過したり、キーボードのボタンやマウスボタンが押されると、その時点のマウスポインタの座標とともにセットされ、次にこの関数の呼び出しがあるまで保持される。この関数の呼び出し後、イベント状態はリセットされる。
・座標(X1, Y1)と(X2, Y2)は、マウス・ポインタのGWウィンドウ上での座標(ワールド座標系)が設定される。
 返却値
> 0: 押されたキーの仮想コード。
=-1: マウスの左ボタンが押された。
=-2: マウスの右ボタンが押された。
=-3: タイマー・イベントが発生した(GWtimer関数)。
= 0: イベントなし。


int GWsetmsg(char *文字列);
文字列をステータスバーに表示する。

 実行して、GWウィンドウ上でマウスを左クリックすると返却値(-1)とマウスポインタの座標がコマンドプロンプトに表示される。また、GWウィンドウ上でキーボードのボタンを押すと返却値(文字コード)とマウスポインタの座標がコマンドプロンプトに表示される。
 右クリックするとプログラムが終了する。



 前へ 次へ 
 Copyright © 2005 Hiroshi Masuda 

 

 

inserted by FC2 system