Previous: イベント処理
Up: Xウィンドウ・プログラミング
第5回 ウィンドウのプログラミング・スタイル

Next: 今日登場する重要なイベント構造体のメンバー
Previous Page: イベントの情報を受け取るには
Next Page: 今日登場する重要なイベント構造体のメンバー

イベント処理の手順

イベント構造体の宣言
   XEvent  eve;

受け付けたいイベントのウィンドウへの登録(マスクの設定) XSelectInput( dsp, win, ButtonPressMask );

イベントの無限ループに入る while( True )

次々と来るイベントのキャッチ XNextEvent( dsp, &eve );

イベント別の処理(以下)を繰り返す

#include<stdio.h> #include<X11/Xlib.h> main() { Display *dsp; /* ディスプレイ構造体の宣言 */ Window win; /* ウィンドウ構造体の宣言 */ XEvent eve; /* イベント構造体の宣言 */

dsp = XOpenDisplay( NULL ); win = XCreateSimpleWindow( dsp, DefaultRootWindow(dsp), 0, 0, 800, 600, 2, BlackPixel(dsp,0), WhitePixel(dsp,0) ); XSelectInput( dsp, win, ButtonPressMask ); /* イベントマスク設定 */

XMapWindow( dsp, win ); XFlush( dsp );

while( True ) /* イベントの無限ループの開始 */ { XNextEvent( dsp, &eve ); /* 新しいイベントを受け取る */ switch( eve.type ) /* イベントのタイプで処理を分ける */ { case ButtonPress : switch( eve.xbutton.button ) /* ボタン番号で分ける */ { case 1: /* 左ボタン */             :

maruyama@wakhok.ac.jp
1995年02月01日 (水) 00時21分18秒 JST