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を持っています.
- color(r,g,b) 色設定
- line(x1,y1, x2,y2) 線分
- box(x1,y1, x2,y2) 四角形
- boxf(x1,y1, x2,y2) 塗りつぶされた四角形
- circle(x,y,r) 円
- circlef(x,y,r) 塗りつぶされた円
- print(s) 文字列の表示
- move(x,y) カレントポジションの移動
コンストラクタ(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() 画面の更新
内部のビットマップをウインドウに反映させます
- bw.update(false) 自動更新OFF(これ以降の描画が高速になります)
- bw.update(true) 自動更新ON
- bw.update() 更新する
Copyright © binzume all rights reserved.