OnDraw和OnPaint函数的区别
来源:互联网 发布:查找英文文献的数据库 编辑:程序博客网 时间:2024/05/17 02:29
CWnd::OnPaint() 是CWnd类的成员函数,是WM_PAINT 消息的响应函数.当你调用CWnd::UpdateWindow(), CWnd::RedrawWindow()时, 或者窗口被其他窗口覆盖,改变大小等事件就会产生WM_PAINT 消息. 你可以在CWnd派生的子类中使用它.
CView::OnDraw()是CView类的一个纯虚函数.你要使用,必须重载它.
CView::OnPaint()会调用它.
OnPaint是收到WM_PAINT消息时所调用的,OnPaint调用OnDraw函数,而由于OnDraw是虚拟函数,你可以自己改写,所以就实现了,不同的绘图目的
OnDraw用于CView,而OnPaint用于CDialog
OnPait 响应WM_PAINT消息,在CView中,它接着调用OnDraw
CPaintDC响应WM_PAINT消息,自动完成绘制
ClientDC实时绘制
一般情况下,你看不到两个函数有什么太大区别,因为一般情况下,它们的任务都是重画窗口。
在CView及其子类中,恰如浪刀所言,OnDraw是由OnPaint调用的,也就是你可以像在窗口类中一样,调用Invalidate函数导致,OnDraw的调用(当然,Invalidate是先导致OnPaint的调用)。
要说OnDraw和OnPaint有什么区别,那就是它除了可以把画画到屏幕外,还可以把它画到其它任何标准输出设备,如打印机。
CView::OnDraw()是CView类的一个纯虚函数.你要使用,必须重载它.
CView::OnPaint()会调用它.
OnPaint是收到WM_PAINT消息时所调用的,OnPaint调用OnDraw函数,而由于OnDraw是虚拟函数,你可以自己改写,所以就实现了,不同的绘图目的
OnDraw用于CView,而OnPaint用于CDialog
OnPait 响应WM_PAINT消息,在CView中,它接着调用OnDraw
CPaintDC响应WM_PAINT消息,自动完成绘制
ClientDC实时绘制
一般情况下,你看不到两个函数有什么太大区别,因为一般情况下,它们的任务都是重画窗口。
在CView及其子类中,恰如浪刀所言,OnDraw是由OnPaint调用的,也就是你可以像在窗口类中一样,调用Invalidate函数导致,OnDraw的调用(当然,Invalidate是先导致OnPaint的调用)。
要说OnDraw和OnPaint有什么区别,那就是它除了可以把画画到屏幕外,还可以把它画到其它任何标准输出设备,如打印机。
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnPaint 和 OnDraw函数的区别
- onDraw和onPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnDraw和OnPaint函数的区别
- OnPaint和OnDraw的区别
- Onpaint和OnDraw的区别
- OnDraw()和OnPaint()的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- OnDraw和OnPaint的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- OnPaint和OnDraw的区别
- ArcGIS for javascript官网环境搭建
- [Qt] Qt对话框 [2013-09-17更新]
- MoveWindow和SetWindowPos之异同!
- @Override:加载项目的时候,带@Override的出错原因
- C++设计模式--职责链模式
- OnDraw和OnPaint函数的区别
- Windows下svn客户端和服务器的安装使用
- IOS atomic与nonatomic,assign,copy与retain的定义和区别
- SQL Server触发器创建、删除、修改、查看
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
- C++中的抽象类以及接口的区别联系
- maven 配置
- The top 5 JavaScript templating engines
- 几种常见的排序算法