我遇到了一个问题,即有些电脑(很少)在使用我们的应用程序时会出现闪烁。我在我们应用程序的主窗体中发现了一些奇怪的代码:
protected override CreateParams CreateParams
{
get
{
var cp = base.CreateParams;
cp.ExStyle |= 0x02000000;//composite window. Composite windows do not render/flickr when controls are born. This speeds up loading.
return cp;
}
}
代码似乎来自一个在线源,他们警告说:
“你应该意识到这只在所有控件绘制(在层次结构内)都是通过 WM_PAINT 完成的环境下才能起作用。使用其他/异步方式渲染层次结构内控件的应用程序可能会出现问题,导致不必要的行为。”
什么是 WM_PAINT?他们是否意味着所有控件都需要通过 win32 API 调用进行绘制,或者这通常是在加载事件中发生的?
有一个注释说添加了代码以减少关于闪烁的错误报告……我只是想知道他们是否在这个问题上一并解决了。