在WTL或MFC的程序中使用了按钮控件
茬触发点击事件向按钮上面赋值时总是会出现闪烁的情况;
查询后得知, 此 invalidateate()
函数是 “使整个窗口客户区无效, 并进行更新显示的函数”
调鼡invalidateate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低它需要等消息队列中的其它消息发送完后才能被处理。
所以调用该函数后,对应的窗口控件无效;并且在下一次进行重绘;
我们希望它能尽快重绘以致于不在过长时间后进行闪烁;
所以,可以在无效化窗口区域后利用RedrawWindow()
进行立即重绘解决闪烁问题;
这样,可以有效解决按钮闪烁问题;