私は、多くの DIB ビットマップ (によって作成されたCreateDIBSection
) を持ち、Win API を使用してそれらに多くのテキストを描画する必要があるプログラムに取り組んでいます。
ビットマップ上に描画するために、Windows は によって作成されたデバイス コンテキストを必要としますCreateCompatibleDC
。
そして今、ここに2つのアプローチがあります:
ビットマップごとに 1 回 DC を作成し、それを描画に使用して、ビットマップを解放するときに削除できます。
または、ビットマップに描画する必要がある場合にのみ DC を作成し、描画関数を呼び出して DC を削除できます。
より良いアプローチは何ですか?呼び出しが少ないため、最初の方法を好みます。これにより、コードがはるかに小さくなり、少し速くなります。
しかし、ビットマップごとに長寿命の DC を保持するにはコストがかかりすぎませんか?
Edit1: アプリケーションは実際には GUI ツールキット ライブラリであり、将来的にはさまざまな予測不可能な方法で使用できるため、パフォーマンスを最大限に高め、システム リソースの使用を最小限に抑えるバランスの取れた決定が必要です。