1

我开发音频插件,这些插件在它们的主机内运行并实时工作。每个插件都有自己的带有控件的窗口,它通常包含某种分析窗格,一个非常大的矩形,可以重复绘制(例如每秒 20-50 倍)。这一切都运作良好。

当用户调整参数时,麻烦就来了——插件使用 WM_MOUSEMOVE 来跟踪鼠标移动,并在每次更改时调用 ::InvalidateRect 以重绘窗口的相关部分。如果你移动得足够快,窗口真的很快就会重新绘制,但是似乎没有时间重新绘制主机和其他窗口,而且这些通常也会执行某种分析反馈,所以它真的很不理想。

没有我的问题:1)假设主机和其他窗口也使用 ::InvalidateRect ,为什么我的优先?2)如何使 ::InvalidateRect 不优先,这意味着窗口需要失效,但可能会更晚,系统的其余部分也必须有时间进行重绘。

提前致谢!

4

0 回答 0