0

私は厳密には Windows プログラミングの専門家ではありません ;) ですから、この質問が些細なことでしたらすみません。

ビットマップを表示したいウィンドウがあります。ビットマップは、領域全体に広がるように引き延ばすか、元の縦横比で表示され、空のスペースがソリッド ブラシで塗りつぶされます。

LoadImage でビットマップを読み込み、BitBlt を使用して表示します。私はWM_ERASEBKGNDでそれを行い、mem DCであるwparamからのDCを使用します。

ビットマップを引き伸ばす必要がある場合、BitBlt の代わりに StretchBlt を使用することを考えていました。

だから私の質問は:

  • ビットマップを HBITMAP として保存しても問題ありませんか、それとも DIBSection を使用する必要がありますか? 両方のソリューションのメモリ使用量はどれくらいですか?

  • WM_ERASEBKGND で DC に描画するときは常にビットマップをストレッチする必要がありますか?それとも、事前に計算されたストレッチされたビットマップを使用して互換性のある DC (またはビットマップ) を作成し、それをターゲット DC に BitBlt する必要がありますか?

  • 事前計算されたビットマップを作成する場合、元のビットマップをすぐにアンロードしてメモリを節約する必要がありますか?

  • BitBlt/StretchBlt または CopyImage を使用する必要がありますか?

  • LoadImage を必要な幅と高さのパラメーターで使用して、読み込まれた画像が既に引き伸ばされるようにすることもできると読みましたが、このソリューションの方が優れていますか?

いくつかのコード例に本当に感謝しています。

編集:

GDI+ ソリューションも大歓迎です。私は、この問題に対する最も簡単でパフォーマンスの高い解決策に興味があります。

4

0 に答える 0