5

我正在使用 UpdateLayeredWindow 创建一个分层窗口,并且我已经为子控件实现了绘图逻辑。我的问题是,每次 uI 发生变化时,都需要重新绘制整个框架。我想知道是否有办法只重绘窗口的特定 CRect 或 CRgn(即,将相关的 CDC 传递到 UpdateLayeredWindow,但指定要被 invlidated 的 CRect)。

使用 UpdateLayeredWindowIndirect 并将 UPDATELAYEREDWINDOWINFO 结构中的 prcDirty CRect 设置为控件的客户区域会导致仅更新该区域吗?

4

3 回答 3

4

和参数让您指定要更新的窗口部分psize。不使用失效模型。它使用更新模型。pptSrcUpdateLayeredWindow

于 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 回答