在窗口的某个区域使用UpdateLayeredWindow

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

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

通过psizepptSrc参数可以指定要更新的窗口的哪一部分。 UpdateLayeredWindow不使用失效模型。 它使用更新模型。

“UpdateLayeredWindow总是更新整个窗口。要更新窗口的一部分,使用传统的WM_PAINT并使用SetLayeredWindowAttributes设置混合值。 – http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556(v=vs.85).aspx

请阅读文档。 Pleeeeease。

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

是。 这正是它所做的。