Previous: ピクスマップを背景に使う
Up: Xウィンドウ実習
第2回 色と模様を使う
Previous Page: ピクスマップを背景に使う
Next Page: Xウィンドウ・プログラミング
第3回 ウィンドウの階層構造とカラーの操作のまとめ
画面全体の背景になっているルート・ウィンドウの操作も、普通のウィンドウと
全く同じです。
ここでは色付きのピクスマップを使用し、色と模様の両方を設定してみましょう。
ソース・ファイル名は win7.c としてください。
win7.c
#include<stdio.h> #include<X11/Xlib.h> #include "heart" /* ビットマップのデータ */ main() { Display *dsp; /* ディスプレイ構造体の宣言 */ Colormap cmap; /* カラーマップの宣言 */ XColor iro1, iro2; /* カラー構造体の宣言 */ Pixmap pix; /* ピクスマップの宣言 */dsp = XOpenDisplay( NULL ); /* ディスプレイのオープン */
cmap = DefaultColormap( dsp, 0 ); /* カラーマップを得る */
/* 色のデータ */ iro1.red=65535; iro1.green=33000; iro1.blue=65535; iro2.red=42000; iro2.green=0; iro2.blue=25000; /* カラーマップから色を得る */ XAllocColor( dsp, cmap, &iro1 ); XAllocColor( dsp, cmap, &iro2 );
/* ピクスマップの生成 */ pix = XCreatePixmapFromBitmapData( dsp, DefaultRootWindow(dsp), heart_bits, heart_width, heart_height, iro1.pixel, iro2.pixel, 8 );
/* 背景のビットマップの設定 */ XSetWindowBackgroundPixmap( dsp, DefaultRootWindow(dsp), pix ); XClearWindow( dsp, DefaultRootWindow(dsp) ); /* ウィンドウのクリア */ XFlush( dsp );
XCloseDisplay( dsp ); /* ディスプレイのクローズ */ }