我遇到了一个问题,即某些计算机(很少)在使用我们的应用程序时开始闪烁。我在我们的应用程序的主要形式中发现了一些奇怪的代码:
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 调用进行绘制,或者这是否通常在 Load 事件中发生?
有一条注释说添加了代码是为了减少有关闪烁的错误报告……我只是想知道他们是否将婴儿和洗澡水一起扔了出去。