关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
来源:互联网 发布:怎么在电脑上切换网络 编辑:程序博客网 时间:2024/05/22 01:53
而OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息。
OnDraw()是CVIEW的成员函数,并且没有响应消息的功能。这就是为什么你用VC成的程序代码时,在视图类只有OnDraw没有OnPaint的原因。
我们一般用OnPaint维护窗口的客户区(例如我们的窗口客户区加一个背景图片),用OnDraw维护视图的客户区(例如我们通过鼠标在视图中画图)。
=====================================================================================================================
1.OnPaint: WM_PAINT
消息函数,接受到WM_PAINT消息时,首先调用的是onpaint(),onpaint()再调用ondraw()
OnPaint()-àOnDraw();
2.OnDraw:虚函数,需要重载
3.OnDrawItem: WM_DRAWITEM
子控件有自画属性且控件需重画时,父窗口会调用该函数
在具有Owner Draw属性的控件需要重画的时候,就会激发OnDrawItem
当自画子按钮控件、组合框控件、列表框控件或菜单的可视部分需要被画出时调用这个函数
OnDrawItem()-àDrawItem();
4.DrawItem:虚函数,需要重载
OnDrawItem是画窗口中的子控件的,因为它的入口参数LPDRAWITEMSTRUCT带入不同子控件的相关参数,而且,你得把字控件设置成“自画”类型,才会调用到OnDrawItem,顺便说一下自画,不是所有设置成自画类型的控件都会调用父窗口的OnDrawItem,例如ListBox的自画,你就必须重载CListBox的DrawItem方法和MeasureItem方法才可以,但象菜单,按钮等的自画则会调用OnDrawItem。
OnPaint和OnDrawItem不在一个范畴内,他是WM_PAINT的响应函数,凡是基于CWnd的类都有OnPaint事件发生,就是说凡是窗口都有WM_PAINT事件发生。
- 关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
- 关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
- 关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
- 重绘控件中OnPaint、OnDraw、OnDrawItem和DrawItem的区别
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnPaint 和 OnDraw函数的区别
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnCtrlColor,OnDrawItem,DrawItem,OnPaint之间关系
- OnCtrlColor,OnDrawItem,DrawItem,OnPaint之间关系
- OnDraw与OnPaint的区别
- OnPaint和OnDraw的区别
- Onpaint和OnDraw的区别
- OnDraw()和OnPaint()的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- win2008R2的Hyper-v安装Redhat server 5
- 用U盘装ubuntu时每次启动都需要U盘
- Android TextView显示文字过长时添加阴影渐变消失效果
- nfs出现 Stale NFS file handle 错误
- 如何动态创建ACCESS数据库
- 关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
- TransactionScope异常:该伙伴事务管理器已经禁止了它对远程/网络事务的支持
- listener
- 开发者:我待iOS如初恋 Android虐我千百遍
- 队列
- Spring Batch for Excel
- 【Ajax】Ajax科普贴
- 字母列表快速搜索控件
- boost python的使用