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