6

背景を消去すると別のウィンドウメッセージが表示される理由をよく理解していません。私には少し冗長に見えます。所有者が描画するボタンを作成したとき、私は常にWM_PAINT内から背景を消去することになりました。WM_ERASEBKGNDの内側からすべてのペイントを実行し、WM_PAINTを空のままにしておくこともあります。どちらも正常に機能しているようです。絵を2つの操作に分けることに何か利点はありますか?

4

1 に答える 1

4

これは完全に推測です:

昔は、四角形を色で塗りつぶすのは比較的遅い操作でした。しかし、1 つの大きな長方形を塗りつぶすことは、たくさんの小さな長方形を塗りつぶすよりもはるかに高速でした。

子ウィンドウを持つウィンドウがあり、両方に同じ登録済みの背景ブラシがある場合、Windows は、親を既にクリアしているときに WM_ERASEBKGND を子に送信する必要がないことを理解するのに十分賢いと思います。非常に遅い PC で適度に複雑なダイアログ ボックスを使用する場合、これは大幅な改善となる可能性があります。

于 2012-02-27T15:53:57.843 に答える