|
我的程序如下: void CTestDialogView::OnScreenClean() { m_mode=0; m_clean=1; Invalidate(); } else if(m_clean==1&&m_mode==0) { Invalidate(); } |
|
|
|
ondraw 里面调用 Invalidate();
会产生 WM_PAINT 再次调用ondraw 从而进入一个死循环 用FillRect吧 |
|
|
好象是调用Invalidate()后,并不马上执行更新,而是当下一个WM_PAIN调用 或者 有Validate()调用时 才真正执行.
所以,你在OnDraw()中调用,会等到有下一个OnDraw()时才更新,所以看起来会有点延迟. |
|
|
还是用FillRect比较好.
|
|
|
谢谢了!
我的msdn出了问题,麻烦那位可以写一下实现代码嘛? |
|
|
去掉你OnDraw里的Invalidate();
或者用刷子重新刷一次你的客户区 |
|