在窗口的某个区域上使用 UpdateLayeredWindow

Using UpdateLayeredWindow on a region of a window

本文关键字:UpdateLayeredWindow 区域 窗口      更新时间:2023-10-16

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

使用 UpdateLayeredWindowInindirect 并将 PRCdirty CRect 在 UPDATELAYEREDWINDOWINFO 结构中设置为控件的工作区,是否只会导致该区域的更新?

psizepptSrc 参数允许您指定要更新的窗口部分。 UpdateLayeredWindow不使用失效模型。它使用更新模型。

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

请阅读文档。哗啦啦。

使用 UpdateLayeredWindowInindirect 并将 PRCdirty CRect 在 UPDATELAYEREDWINDOWINFO 结构中设置为控件的工作区,是否只会导致该区域的更新?

是的。这正是它的作用。

相关文章:
  • 没有找到相关文章