MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
来源:互联网 发布:李尔韦恩 知乎 编辑:程序博客网 时间:2024/05/02 22:35
一、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函数。这样窗口的打印功能就可以和显示共用一个函数
- 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()的区别和联系
- Triangle
- 学习mina实例~
- 【COCOS2DX-ANDROID-游戏开发之十六】之 APK签名,打包
- linux页面回收浅析
- arcgis server10.1 新功能动态图层渲染
- MFC中的Invalidate、OnDraw、OnPaint函数的作用、区别和联系
- 用DateTime.ToString(string format)输出不同格式的日期
- JAVA布局模式:GridBagConstraints终极技巧
- Android permission 访问权限大全
- 键树的改进算法--双数组实现
- phostoshop曲线工具
- 阿里集团有可能战略投资PPTV
- Android开发之抽屉特效赏析
- Android 抽屉导航