关于文档重绘的问题! 在view中设置了一个计时器,作用是每隔一端时间来重新获得画图的数据,每次调用ONDRAW函数,现在的问题是:画面上有标题等不需要每次都重画的部分,应该怎么样设置才能使只重画我指定的区域呢?谢谢!如果说的不清楚,请问先! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 InvalidateRect(...)?自己计算需要重绘的RECT区域不就行了吗? 对,使用无效矩形。先设置无效区域:RECT rect;然后在OnDraw函数中做参数调用InvalidateRect()函数,即可。 不是在ondraw中调用吧看什么时候数据变化,就相应的重绘view 我现在的OnTimer的函数是这样的:void CMDITestView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CMDITestDoc* pDoc = GetDocument(); pDoc->OnTimer();//是取数据的函数 Invalidate(FALSE); CView::OnTimer(nIDEvent);}具体应该怎么办呢? 先定义你要重绘的区域,即填充一个RECT结构(假设声明为 rect),然后调用InvalidateRect(rect)来使这个区域无效,从而引发重绘该区域. 计算出需要重绘的rect,不必重绘。把重绘数据写入档,把需要重绘区域用InvalidateRect加入。把重绘数据写入档 对,我说错了,不是在OnDraw中调用,是在你想要刷新的时候调用InvalidateRect()函数,强迫调用OnDraw函数刷新参数指定的矩形区域。 代码举例:void C..::OnTimer(...){ CRect rect(/*要刷新的区域矩形的初始化数据*/); InvalidateRect(rect); ...}OnDraw函数中该怎么画怎么画。 视图变量的改变为什么不能同步了? 为什么在一台电脑上编译正确的代码到另外一台电脑上就不正确了??? 清教各位专家 请问关于函数void TraverseTire(TireTree &t,void(*print)(record))的问题 安装VC++在最后的更新环境变量时提示为不能增加DCOM user account?请高手帮忙. 我的程序如何与OS绑定到一块儿,同生死,共存亡? 局域网内文件的访问 如何在对话框中实现左右可移动分隔条(动态),类似与分隔视图相同的功能??? 分割窗口问题 如何不采用MFC实现对话框的功能? ?有谁想要呢? ?有谁想要呢?
自己计算需要重绘的RECT区域不就行了吗?
先设置无效区域:RECT rect;
然后在OnDraw函数中做参数调用InvalidateRect()函数,即可。
看什么时候数据变化,就相应的重绘view
void CMDITestView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CMDITestDoc* pDoc = GetDocument();
pDoc->OnTimer();//是取数据的函数
Invalidate(FALSE);
CView::OnTimer(nIDEvent);
}
具体应该怎么办呢?
InvalidateRect(rect)来使这个区域无效,从而引发重绘该区域.
{
CRect rect(/*要刷新的区域矩形的初始化数据*/);
InvalidateRect(rect);
...
}OnDraw函数中该怎么画怎么画。