windows vc 界面闪烁

  • 不适当的UpdateWindow调用。Windows给paint消息指定的优先级比较低,以防止窗口不必要的重画。但是,显示调用UpdateWindow迫使窗口立即被重画,而这很有可能是不必要的
  • 调用InvalidateRect不指定更新矩形。API函数InvalidateRect允许用户指定更新矩形,使得重画只限于需要重画的区域;可以传递一个空指针给InvalidateRect函数来更新整个窗口,但是这样做画图需要更长的时间,结果是不必要的闪烁和低速的画图
  • 调用InvalidateRect,而将擦除背景参数(erase background parameter)不适当地设置为真。如果背景不需要重画,你可以将InvalidateRect函数中擦除背景的参数设置为false。注意,MFC将这个擦除背景的参数默认设置为true
  • 不适当地使用CS_HREDRAW和CS_VREDRAW窗口风格。仅当客户区的大小改变需要重画整个窗口时,才需要设置这两种窗口风格。如果窗口中的某些元素需要居中放置,这是必要的;但大多数的窗口不需要居中排列任何东西,所以没有必要使用这类风格。MFC默认使用的就是这两类风格,所以如果你是用的是MFC,最好在自己的类的窗口构造函数中去掉这两个属性

你可能感兴趣的:(windows)