1

グリッドのあるコントロールがあります。デバイスコンテキストクラスの描画線関数を使用して、グリッドを構成する水平線と垂直線を毎回描画する方がコストがかかりますか、それとも、グリッドをメモリデバイスコンテキストに一度描画してから、毎回ブリットする方が高速ですか?ウィンドウDC?ありがとう。

4

6 に答える 6

5

それはあなたが持っているラインの数、グリッドの大きさ、そしてユーザーが持っているビデオカードを含む多くのものに依存します。

あなたの最善の策は、それらの1つ(おそらくDrawLine、私の直感ではよりシンプルで高速になると言っています)を実行してから、遅いマシンでテストすることです。それが機能し、十分に高速である場合は、時期尚早に最適化しないでください。

于 2009-05-29T11:59:02.227 に答える
2

別のオプション:グリッド パターンと領域だけでブラシを作成しますFillRect()。ほとんどの場合、私の経験からすると、これが最速の方法です..

しかし、「RichieHindle」は正しいです。速度を測定するだけで事実を知ることができれば、それについて哲学する必要はありません;) ..

于 2009-05-29T13:25:46.280 に答える
1

Aがそのような制御を行っていたので、セルを更新するときに各セルの境界線を描画しました。(これは単なる代替案です)

于 2009-05-29T12:06:36.297 に答える
0

また、使用しているペンの種類によっても異なります。単純な単色の水平線と垂直線の場合、通常、IIRCの長方形の塗りつぶしが最速ですが、独自のベンチマークを実行するのはかなり簡単なはずです。

于 2009-05-29T12:19:07.770 に答える
0

簡単な答え: 後者です。メモリ DC に 1 回ブリットして、その後の再描画操作でビットマップとして使用できるようにすることは、通常、レンダリングのためのより高速なアプローチです。

于 2009-05-30T17:50:32.303 に答える
0

メモリ内のイメージをコピーするため、ブリッティングが推奨されます。画像をコピーすると、描画時のちらつきを防ぐことができます。

于 2009-05-30T18:10:15.343 に答える