Kap*_*ade 5 windows user-interface mfc gdi window
我们的应用程序SetWindowRgn()在其OnPaint()功能中使用API 创建自定义形状的叠加窗口.该区域窗口仅具有客户区域.它还有一个所有者窗口,这是一个普通的矩形窗口.
我们观察到,如果区域的形状很复杂,例如,如果窗口区域是文本或复杂设计,则有时SetWindowRgn()调用OnPaint()需要很长时间才能返回.即使是此区域窗口下方的窗口也会缓慢呈现.这主要发生在调整视图大小时.我们发现OnNcCalcSize()从内部调用SetWindowRgn()并且默认处理OnNcCalcSize()需要很长时间才能返回.此外,在某些机器上,区域窗口下方的窗口绘画非常慢.
为什么复杂形状的区域窗口渲染会变慢?我们可以通过自定义处理类似事件OnNcCalcSize()或其他事件来加快速度吗?
注意:请不要建议使用分层窗口,因为技术限制迫使我们使用区域窗口.