讨论下重画的问题 Invalidate();和直接调用CDC *pDC=GetDC();OnDraw(pDC);有什么区别?(画都是在OnDraw里面画,未在其他地方画) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用Invalidate()是正规的做法,是不是要调用OnDraw由系统决定,因为窗口可以隐藏,可以最小化的。调用OnDraw(pDC)就是你自己控制了,不是正式的做法。 Invalidate()应该是有条件的触发WM——PAINT消息,从而在消息响应函数中OnDraw执行。是间接的调用OnDraw,比调用OnDraw(pDC)就是你自己控制多了一些过程 呵呵,其实我是想知道他们的调用及时性上的区别,我调用了onDraw感觉它并没有帮我刷新界面而调用invalidate呢又刷新的太晚了。 InvalidatedRect 使一个矩形无效,需要重绘该矩形,在该矩形做一个重绘的标记,当下一次WM_PAINT发出的时候,该矩形被重绘.使显示矩形区无效,WM_PAINT会对无效的区域重画函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。 UpdateWindow强制发出一个WM_PAINT消息 会发送一条WM_PAINT,但不进入消息队列,呼叫立即更新窗口 只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT 如果希望立即刷新无效区域,可以在调用InvalidateRect之后调用UpdateWindow,如果客户区的任一部分无效,则UpdateWindow将导致Windows用WM_PAINT消息调用窗口过程(如果整个客户区有效,则不调用窗口过程)。这一WM_PAINT消息不进入消息队列,直接由WINDOWS调用窗口过程。窗口过程完成刷新以后立刻退出,WINDOWS将控制返回给程序中UpdateWindow调用之后的语句。 静态文本框写入大量数据,如何处理?? 如何把MFC对话框的局部设置成白色的 趁假期自学mfc,入门小问题,不知道代码写在哪里才能运行 C++中级问题: 函数选择 [告示]请大家再也不要给0sch专家分 机子无法启动,各位大虾帮帮忙! 请问编程如何实现ping操作呢?windows 有api函数实现ping操作的吗? 定时器问题 c++怎样计算平方或立方??? 如何在CSocket的事件中写入自己的代码? 螺丝虾米,关注: 请教一下VC高手,关于<<visual c++技术内幕>>这本书
而调用invalidate呢又刷新的太晚了。
使一个矩形无效,需要重绘该矩形,在该矩形做一个重绘的标记,当下一次WM_PAINT发出的时候,该矩形被重绘.
使显示矩形区无效,WM_PAINT会对无效的区域重画
函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。 UpdateWindow
强制发出一个WM_PAINT消息
会发送一条WM_PAINT,但不进入消息队列,呼叫立即更新窗口
只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT 如果希望立即刷新无效区域,可以在调用InvalidateRect之后调用UpdateWindow,如果客户区的任一部分无效,
则UpdateWindow将导致Windows用WM_PAINT消息调用窗口过程(如果整个客户区有效,则不调用窗口过程)。
这一WM_PAINT消息不进入消息队列,直接由WINDOWS调用窗口过程。窗口过程完成刷新以后立刻退出,
WINDOWS将控制返回给程序中UpdateWindow调用之后的语句。