在窗口区域上使用 UpdateLayeredWindow

use*_*369 5 c++ windows winapi

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

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

Ray*_*hen 4

psize参数pptSrc可让您指定要更新窗口的哪一部分。UpdateLayeredWindow不使用失效模型。它使用更新模型。

  • 如果您想评估性能,那么只有一种方法可以确定:尝试两种方法并进行比较。 (2认同)