Previous: ウィンドウの背景色を設定する
Up: Xウィンドウ実習
第2回 色と模様を使う
Next: ピクスマップを背景に使う
Previous Page: ウィンドウの背景色を設定する
Next Page: ピクスマップを背景に使う
使用したい色をカラーマップから選び出して使うには、
構造体 Colormap と XColor が必要になります。
カラーマップの中から指定した色を取り出し、ウィンドウの背景色に使用します。
ここでは赤色をデータとして与えてみましょう。
ソース・ファイル名は win5.c としてください。
win5.c
#include<stdio.h>
#include<X11/Xlib.h>
main()
{
Display *dsp; /* ディスプレイ構造体の宣言 */
Window win; /* ウィンドウ構造体の宣言 */
Colormap cmap; /* カラーマップの宣言 */
XColor aka; /* カラー構造体の宣言 */
dsp = XOpenDisplay( NULL ); /* ディスプレイのオープン */
cmap = DefaultColormap( dsp, 0 ); /* カラーマップを得る */
aka.red=65535; aka.green=0; aka.blue=0; /* 赤色のデータ */
XAllocColor( dsp, cmap, &aka ); /* カラーマップから色を得る */
/* ウィンドウの生成 */
win = XCreateSimpleWindow( dsp, DefaultRootWindow(dsp),
0, 0, 800, 400, 1,
BlackPixel(dsp,0), WhitePixel(dsp,0) );
XMapWindow( dsp, win ); /* ウィンドウの表示 */
XFlush( dsp );
getchar(); /* リターンキーの入力まで停止 */
XSetWindowBackground( dsp, win, aka.pixel ); /* 背景色の設定 */
XClearWindow( dsp, win ); /* ウィンドウのクリア */
XFlush( dsp );
getchar(); /* リターンキーの入力まで停止 */
XCloseDisplay( dsp ); /* ディスプレイのクローズ */
}