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