在窗口的某个区域上使用 UpdateLayeredWindow
Using UpdateLayeredWindow on a region of a window
我正在使用UpdateLayeredWindow创建一个分层窗口,并且我已经为子控件实现了绘图逻辑。我的问题是每次 ui 发生变化时,都需要重新绘制整个帧。我想知道是否有办法只重绘窗口的特定 CRect 或 CRgn(即将相关的 CDC 传递到 UpdateLayeredWindow,但指定您想要被激活的 CRect)。
使用 UpdateLayeredWindowInindirect 并将 PRCdirty CRect 在 UPDATELAYEREDWINDOWINFO 结构中设置为控件的工作区,是否只会导致该区域的更新?
psize
和 pptSrc
参数允许您指定要更新的窗口部分。 UpdateLayeredWindow
不使用失效模型。它使用更新模型。
"UpdateLayeredWindow 总是更新整个窗口。要更新窗口的一部分,请使用传统WM_PAINT并使用 SetLayeredWindowAttributes 设置混合值。- http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556(v=vs.85).aspx
请阅读文档。哗啦啦。
使用 UpdateLayeredWindowInindirect 并将 PRCdirty CRect 在 UPDATELAYEREDWINDOWINFO 结构中设置为控件的工作区,是否只会导致该区域的更新?
是的。这正是它的作用。
相关文章:
- 没有找到相关文章