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() 画面の更新

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

Copyright © binzume all rights reserved.