0

別のビットマップを作成したい場合は、

この関数を何度も使用しCreateCompatibleBitmapて、同じメモリ CDC に関連付けます。

CreateBitmap I and SelectObjectagain and againと同じ意味ですか??

別の CDC によって新しく作成されたビットマップに何かをしたいので、この質問をします。

4

2 に答える 2

1

特定のコードを見ないと正確な問題を知ることは困難ですが、CreateCompatibleBitmap は通常、ちらつきを避けるためにダブル バッファリングの状況で使用されます。デバイス コンテキスト (DC) に直接描画するのではなく、基本的にビットマップに描画するオフスクリーンまたはメモリ DC に最初に描画します。ビットマップは、BitBlt を使用して画面 DC に直接コピーされるため、すべての描画が同時に行われるように見えます。

通常の手順は次のとおりです (おそらくすべての WM_PAINT で発生します)。

  1. を使用して、画面 DC を使用して、それと「互換性がある」ビットマップを作成しますCreateCompatibleBitmap
  2. メモリ DC を作成する
  3. ビットマップをメモリ DC に選択します (これが描画対象になります)。
  4. 描画が終了BitBltすると、メモリ DC のビットマップが画面 DC に表示されます。

ここで入手可能な詳細情報: Win32 メモリ DC のガイド (コード プロジェクト)

于 2012-08-24T11:04:20.547 に答える
0

はい、CreateCompatibleBitmap() は、ループ内で呼び出すたびに、新しいビットマップ、新しいメモリ割り当て、新しいハンドラーを作成します。

于 2013-01-05T19:01:41.377 に答える