我使用UpdateLayeredWindow创建了一个分层窗口,并且我已经为子控件实现了绘图逻辑。我的问题是,每当uI发生变化时,整个帧都需要重绘。我想知道是否有办法只重绘窗口的特定CRect或CRgn(即将相关的CDC传递给UpdateLayeredWindow,但是指定要被激活的CRect)。
使用UpdateLayeredWindowIndirect并将UPDATELAYEREDWINDOWINFO结构中的prcDirty CRect设置到控件的客户区域会导致仅更新该区域吗?
答案 0 :(得分:3)
psize
和pptSrc
参数可让您指定要更新的窗口部分。 UpdateLayeredWindow
不使用失效模型。它使用更新模型。
答案 1 :(得分:0)
“UpdateLayeredWindow始终更新整个窗口。要更新窗口的一部分,请使用传统的WM_PAINT并使用SetLayeredWindowAttributes设置混合值。” - http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556(v=vs.85).aspx
请阅读文档。 Pleeeeease。
答案 2 :(得分:0)
使用UpdateLayeredWindowIndirect并将UPDATELAYEREDWINDOWINFO结构中的prcDirty CRect设置到控件的客户区域会导致仅更新该区域吗?
是。这正是它的作用。