ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

タイトル付きのダイアログを作成する

SFRTitleDialog クラスを使って、"my dialog"のタイトルがついたウィンドウを作成します。

SFMTYPEDEFCLASS(MyDialog)
class MyDialog : public SFRTitleDialog {
    SFMSEALCOPY(MyDialog)
public:
    MyDialog(Void) static_throws;
    virtual ~MyDialog(Void);
private:
 // 描画ハンドラを宣言する 
    HANDLER_DECLARE_VOIDRENDER(OnRenderContent)
};

// コンストラクタ
MyDialog::MyDialog() : SFRTitleDialog(SFXRectangle(20, 80, 200, 100), "my dialog") static_throws { 
  
    // 描画ハンドラを登録する
    RegisterHandler(SREVT_RESPONDER_RENDER, 
                            SRP16_RENDER_CONTENT,
                            HANDLER_BEFORE, 
                            HANDLER_FUNCTION(OnRenderContent)));
    }
}

// デストラクタ
MyDialog::~MyDialog(Void)
{
    return;
}

// 描画ハンドラ
HANDLER_IMPLEMENT_VOIDRENDER(MyDialog, OnRenderContent, graphics) {
  
    // SFXGraphics インスタンスを使って描画する
 
    // ダイアログの中を紫色に設定
    // GetContentWorld() はウィンドウの中の
    // 描画領域を表す長方形 ( SFXRectangle ) を返す
    // SFXRGBColor(0xD8, 0xD8, 0xFF, 0x00) : 左から R, G, B, アルファ値
    graphics->FillRectangle(GetContentWorld(), 
                            SFXRGBColor(0xD8, 0xD8, 0xFF, 0x00));

    // "Hello Window" を描画する
    graphics->DrawText("Hello Window", 
                       GetContentWorld(),
                       SFXRGBColor(0x00, 0x00, 0x00, 0x00));
}

// タイトル ダイアログを作成する
MyDialogPtr dialog;
dialog = new MyDialog();