• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HBITMAPを初期化するとは?)

HBITMAPの初期化とは?

このQ&Aのポイント
  • HBITMAPを初期化する方法について
  • CreateDIBitmap関数のfdwInit引数と初期化の意味について
  • 初期化しない状態と初期化した状態の違いとメモリ使用量について

質問者が選んだベストアンサー

  • ベストアンサー
noname#30727
noname#30727
回答No.2

>初期化するとはそれに加え色情報まで追加するということ、という考えであっていますか? それであっています。 初期化してもしなくてもDDBは作成します。この時点で新たに確保されるメモリは同じです。 DDBをDIBで初期化するという意味はわかりますか? ディスプレイが16ビットカラーだとすると、DDBも16ビットカラーになります。DIBは8/16/24ビットなど何でもいいわけだから、結果としてフォーマットが変換されます。 SetDIBitsも含めて計算時間がかかるかどうかは重要ではありません。必要あれば呼び出すしかなくて、必要なければ呼び出さないだけの事です。 ※MSDNによれば「fdwInit パラメータの CBM_CREATDIB フラグは、現在はもうサポートされていません。」とありますね・・・。

ggaogg
質問者

お礼

なるほど。 おかげでまた少し理解できました。 ところでCBM_CREATDIBがなんであるのかは知りませんが、もう必要のない知識ならば知る必要は無さそうですね。

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

初期化の有無は、単に「固定の色(やパターン)で埋めるか、埋めないか」だけの違いです。 例えば、画像ファイルからHBITMAPに画像をロードして何かの処理を行う場合、中身の画像はファイルから読み込むので、初期化の必要はありません。キャンパスが広いと初期化処理に時間がかかり、無駄に時間を食う事になります。 例えば、キャンパスの上にマウスを使ってフリーハンドで何かを描かせる場合、初期の画像は「真っ白」とか「真っ黒」とかになっていないとお絵描き出来ません。つまり、初期化が必要です。

関連するQ&A