Win32应用程序窗口刷新
窗口重绘不是通过WM_PAINT吗?但是我看程序里面的WM_PAINT消息处理只有BeginPaint和EndPaint,没有做其他事情,但是窗口仍然可以重绘,而且就算注...
窗口重绘不是通过WM_PAINT吗?但是我看程序里面的WM_PAINT消息处理只有BeginPaint和EndPaint,没有做其他事情,但是窗口仍然可以重绘,而且就算注释掉这两句话也是可以重绘的?
展开
展开全部
就是无效到有效的过程
当窗口无效时,BeginPaint()调用令整个显示区域有效,擦拭背景等工作,并传回句柄,可以用这个句柄,EndPaint释放设备上下文句柄,使之不再有效。
可以在 BeginPaint和EndPaint之间添加你的代码!如输出文字TEXTOUT() 例在程序窗口中输出“你好”两字,那么当窗口拖动大小或者被其他窗口挡住就变无效了(这两个字“你好”就没有了)那么就会传个WM_PAINT消息,然后执行里面的代码,这样不至于你改变窗口大小或者被遮住而使文字没有了!! 自己可以试试代码
哎,打累死了!!希望能帮到你。。。
当窗口无效时,BeginPaint()调用令整个显示区域有效,擦拭背景等工作,并传回句柄,可以用这个句柄,EndPaint释放设备上下文句柄,使之不再有效。
可以在 BeginPaint和EndPaint之间添加你的代码!如输出文字TEXTOUT() 例在程序窗口中输出“你好”两字,那么当窗口拖动大小或者被其他窗口挡住就变无效了(这两个字“你好”就没有了)那么就会传个WM_PAINT消息,然后执行里面的代码,这样不至于你改变窗口大小或者被遮住而使文字没有了!! 自己可以试试代码
哎,打累死了!!希望能帮到你。。。
2012-01-04
展开全部
如果在这个下面不处理的话,调用都是默认的,也就是你前面注册类时候的状态
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的重绘不包括标题栏、菜单栏和工具栏吧,WM_PAINT消息只重绘Client区,如果BeginPaint和
EndPaint中间什么都没有,但Client区仍绘制的话,查一下有什么地方调用了GetDC,或许在那里做了绘制。
EndPaint中间什么都没有,但Client区仍绘制的话,查一下有什么地方调用了GetDC,或许在那里做了绘制。
追问
事后发现应该只是WM_ERASEBKGND,刷新了一下背景。
不过,话说标题栏、菜单栏和工具栏的绘制是怎么搞的
追答
标题栏、菜单栏和工具栏本身也是窗体,VC6.0带有Spy++工具,可以看到这些窗体的信息
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像一块海绵,每天都会拧出大把大把的思念。但他必须
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
着树上的名字,那是他们分开的日
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询