ビットマップを描画するには?
ビットマップを描画するには、 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();
}









