5

UpdateLayeredWindowを使用してレイヤードウィンドウを作成し、子コントロールの描画ロジックを実装しました。私の問題は、UIに変更が発生するたびに、フレーム全体を再描画する必要があることです。ウィンドウの特定のCRectまたはCRgnのみを再描画する方法があるかどうか疑問に思いました(つまり、関連するCDCをUpdateLayeredWindowに渡しますが、無効にするCRectを指定します)。

UpdateLayeredWindowIndirectを使用し、UPDATELAYEREDWINDOWINFO構造体のprcDirty CRectをコントロールのクライアント領域に設定すると、その領域のみが更新されますか?

4

3 に答える 3

4

psizeおよびパラメータを使用pptSrcすると、ウィンドウのどの部分を更新するかを指定できます。UpdateLayeredWindow無効化モデルを使用しません。更新モデルを使用します。

于 2012-04-08T17:51:32.647 に答える
0

「UpdateLayeredWindowは常にウィンドウ全体を更新します。ウィンドウの一部を更新するには、従来のWM_PAINTを使用し、SetLayeredWindowAttributesを使用してブレンド値を設定します。」-http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556(v = vs.85 ).aspx

ドキュメントをお読みください。どうぞよろしくお願いします。

于 2012-04-08T17:31:27.077 に答える
0

UpdateLayeredWindowIndirectを使用し、UPDATELAYEREDWINDOWINFO構造体のprcDirty CRectをコントロールのクライアント領域に設定すると、その領域のみが更新されますか?

はい。これはまさにそれが行うことです。

于 2016-12-24T00:55:10.817 に答える