第一个问题:可以调用两次,系统自动会帮你计算无效区域;
第二个问题:应该不会出这个问题,除非你的程序有问题。一般总是在OnPaint中画全部的内容,而用InvalidateRect()刷新该刷新的区域。
第二个问题:应该不会出这个问题,除非你的程序有问题。一般总是在OnPaint中画全部的内容,而用InvalidateRect()刷新该刷新的区域。
解决方案 »
- 这段代码是什么意思,在vc下编译的,我是新手,希望大家帮帮忙!
- 变量初始化求教
- 我弱了,来小哥给说下为啥改为SND_RESOURCE便不出声了?
- 求一书!!!高手赐教
- 请问这是何编译问题:fatal error C1010: unexpected end of file while looking for precompiled header directive
- 请高手指点:about SDI and MDI Programming
- 简单问题,送分了
- 谁有拼音输入法的源代码。
- 奇怪!为什么调试版本运行没问题,可是换成正式版本程序却会突然关闭?多谢。
- 在VB中用CreateObject("MyCom.xxxx")创建一个用VC开发的组件,不能创建,为何?
- 关于拨号和socket编程的问题
- 我用mfc做的一个控件,里面用到别的dll,在调用时却不能出现调用的dll里的对话框,为何?
不对。OnDraw()中是画图,更新无效区不能在这里。
象你这个例子:
OnDraw(CDC *pDC)
{
......
DrawGrid(pDC); // 画网格
DrawData(pDC); // 画数据
......
}在你的定时器回调函数调用InvalidateRect(&rc); 其中rc是要更新的无效区域。其他就不需要额外的代码了。如果你对无效区域有疑惑,可以先让整个客户区都刷新:InvalidateRect(NULL),看看结果效果,如果正确再作优化。