cppfl::BitmapWindow

とりあえず絵とか表示するのに便利なクラスです. BASIC感覚でお絵かきできます.

基本的にPenというインターフェイスを使ってグラフィックを描写します (BitmapWindowはPenを多重継承しているので,わざわざ作らなくて良いですが).

サンプル

#include "cppfl/all.h"

BitmapWindow window("Sample app",640,480);
PenEx p;

void onbutton(Widget *w,int d) {
	p.clear();
	p.text(STR "ボタンが押されました"+d);
}

void onendbutton(Widget *w,int d) {
	w->parent().close();
}

int main(int argc,char **argv) {
	// ボタン準備
	Button button1("ボタン1",1,onbutton);
	Button button_e("Exit",3,onendbutton);


	// 画面に配置
	window.add(button1,200,100);
	window.add(button_e);

	p.select(window);
	p.text("Hello, world!");

	p.color(Color::red);
	p.text(STR 123+"あああ"+"いいいa");

	p.color(Color::green);
	p.box(20,32,100,100);
	p.box(100,120,200,230,true);
	p.line(0,40,200,100);
	p.color(0,255,255);
	p.circle(300,200,100,true);

	int x=100,y=100,dx=1,dy=2;
	while (window.isexist()) {
		// 古い円を消す
		p.color(Color::white);
		p.circle(x,y,10,true);
		// 移動
		x+=dx;
		y+=dy;
		if (y<10 || y>=window.dib->height-10) dy=-dy,y+=dy;
		if (x<10 || x>=window.dib->width-10) dx=-dx,x+=dx;
		// 円を描画
		p.color(Color::red);
		p.circle(x,y,10,true);
		if (System::keydown(VK_ESCAPE)) break;
		wait(10);
	}

	return 0;
}

実行結果

メソッド

FormとPenを継承して内部にDIBitmapを持っています.

コンストラクタ(width, height, title)

BitmapWindow bw(640, 480, "test");

640x480のウインドウを作ります.タイトルは「test」

color(r, g, b) color(Color)

色指定.

bw.color(255, 0, 0);
bw.color(Color::red);
bw.color(0x0000ff);

上の3行は同じ意味です. 定義済みの色は8色しかないですが,必要になったら増やします.

print(s)

文字列を表示します.改行もできます.

bw.print("Hello, world!");

位置を指定したい場合は,前もってmoveしてください.

update() 画面の更新

内部のビットマップをウインドウに反映させます