Previous: 準備
Up: Xウィンドウ実習
第2回 色と模様を使う
Next: カラーマップから色を取り出す
Previous Page: 準備
Next Page: カラーマップから色を取り出す
ウィンドウの背景色を設定する関数が XSetWindowBackground() です。
ここでは0から255までの数値を直接指定して、
画面で使用中の色を全て表示させてみましょう。
forループを使って、1秒ごとに色が変わるようにします。
ソース・ファイル名は win4.c としてください。
win4.c
#include<stdio.h> #include<X11/Xlib.h> main() { Display *dsp; /* ディスプレイ構造体の宣言 */ Window win; /* ウィンドウ構造体の宣言 */ int i;dsp = XOpenDisplay( NULL ); /* ディスプレイのオープン */
/* ウィンドウの生成 */ win = XCreateSimpleWindow( dsp, DefaultRootWindow(dsp), 0, 0, 800, 400, 1, BlackPixel(dsp,0), WhitePixel(dsp,0) );
XMapWindow( dsp, win ); /* ウィンドウの表示 */ XFlush( dsp );
for( i=0 ; i<256 ; i++ ) /* カラーマップの色を順に設定するループ */ { sleep(1); /* 1秒間停止して色を表示 */ XSetWindowBackground( dsp, win, i ); /* 背景色を色番号 i に設定 */ XClearWindow( dsp, win ); /* ウィンドウのクリア */ XFlush( dsp ); }
XCloseDisplay( dsp ); /* ディスプレイのクローズ */ }