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 ); /* ディスプレイのクローズ */ }


プログラムができたら、コンパイルして実行してください。
このプログラムは終了まで4分ほどかかるので、 色が変わることを確認できた人は C で止めてもかまいません。

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