ホーム > デベロッパ > BREW FAQ

BREW FAQ : ビットマップを描画するには?

ビットマップを描画するには?

ビットマップを描画するには、 IDisplay インターフェイスの IDISPLAY_BitBlt 関数や IBitmap インターフェイスの IBITMAP_BltIn 関数を使用します。

SophiaFramework では、 SFXGraphics::BitBlt 関数、SFBDisplay::BitBlt関数やSFBBitmap::BltIn 関数を使用します。

【 コード例 】

[ BREW API のみを使用したコード ]

//
// ディスプレイにビットマップを表示します。
//

// リソース ファイルから読み込むビットマップ画像のリソース ID
#define IDB_MY_PICTURE  0x0001

IShell*         shell   = app->a.m_pIShell;
IDisplay*       display = app->a.m_pIDisplay;
IBitmap*        bmp;

// リソース ファイルからビットマップを取得します。
bmp = ISHELL_LoadResBitmap(shell, MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
if (bmp != NULL) {

   // IDisplay インターフェイスを使用してビットマップを描画します。
   IDISPLAY_BitBlt(display,      // オブジェクト
                   0,            // 転送先の X 座標
                   0,            // 転送先の Y 座標
                   100,          // 転送先の幅
                   100,          // 転送先の高さ
                   bmp,          // 転送元のビットマップ
                   0,            // 転送元の転送開始 X 座標
                   0,            // 転送元の転送開始 Y 座標
                   AEE_RO_COPY); // 転送方法

    // 画面を更新します。
    IDISPLAY_Update(display);

    // ビットマップを破棄します。
    IBITMAP_Release(bmp);
}

[ SophiaFramework を使用したコード ]

//
// ディスプレイにビットマップを表示します。
//

// リソース ファイルから読み込むビットマップ画像のリソース ID
#define IDB_MY_PICTURE  0x0001

SFBShellSmp    shell   = SFBShell::GetInstance();
SFBDisplaySmp  display = SFBDisplay::GetInstance();
SFBBitmapSmp   bmp;

// リソース ファイルからビットマップを取得します。
bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
if (bmp != NULL) {

    // SFBDisplay インターフェイスを使用してビットマップを描画します。
    display->BitBlt(SFXRectangle(0, 0, 100, 100),  // 転送先の矩形
                    bmp,                           // 転送元のビットマップ
                    SFXGrid(0, 0));                // 転送元の転送開始座標

    // 画面を更新します。
    display->Update();
}