MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
来源:互联网 发布:免费oa软件 编辑:程序博客网 时间:2024/05/17 19:21
一、Invalidate介绍 void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。二、与UpdateWindow( )的区别 UpdateWindow( )的作用是使窗口立即重绘。调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。为什么需要OnDraw呢,是为了让OnDraw一个函数服务于不同的绘图环境,比如显示器,打印机,绘图仪 ,mfc在调用OnDraw之前会把适当的CDC对象传给OnDraw函数。这样窗口的打印功能就可以和显示共用一个函数。
0 0
- MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
- MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
- MFC中的Invalidate、OnDraw、OnPaint函数的作用
- MFC中的Invalidate、OnDraw、OnPaint函数的作用
- OnPaint()、 OnDraw()、 OnPrint()的区别和联系
- MFC中OnPaint和OnDraw的区别
- MFC中的OnDraw和OnPaint的对比
- MFC中的OnDraw和OnPaint的对比
- MFC中的OnDraw和OnPaint的对比
- MFC中的OnDraw和OnPaint的对比
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnPaint 和 OnDraw函数的区别
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnDraw和OnPaint函数的区别
- VC中的OnDraw和Onpaint的区别
- VC++中OnPaint()、OnDraw()、OnPrint()的区别和联系
- 在KEIL中建立了工程之后,编译就出现这样的提示can't execute 'C:\Keil\C51\BIN\A51.EXE'
- 【黑马训练营】IOS C语言指针
- UI - XMLParser
- 新项目启动
- 百度api语音
- MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
- oracle的单行函数以及多行函数(聚合函数、分组函数)的使用
- 使用JNDI连接数据库
- 2016-我的求职之路
- ios 微信分享审核上架注意事项
- MFC中的GUI(一)
- <PY> Python Zen
- android stidio so动态库找不到问题
- 32位Windows下可执行文件节区数目取值类型