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: /* 左ボタン */ :