OnDraw和OnPaint的区别
2014-04-02 09:44
405 查看
(1)CView类是由CWnd类派生而来的,OnDraw是CView类的虚函数,OnPaint是CWnd的类成员函数,负责相应WM_PAINT消息。
(2)一般是这样:窗口发出一个WM_PAINT消息,OnPaint函数响应这个消息,然后这个函数再调用OnDraw函数。虽然CView类中的OnDraw函数是虚函数,但是我们自己生成的CView类的子类已经将这个函数重载了。
(3)假设我们在自己的View类中重载了OnPaint函数,但是在函数中又没有调用OnDraw函数,那么这个OnDraw函数就完全没有用了。
(4)我们一般用OnPaint维护窗口的一个客户区,比如在窗口客户区添加一个背景图片;而在OnDraw函数中维护视图的客户区,比如用鼠标在客户区画图。
(2)一般是这样:窗口发出一个WM_PAINT消息,OnPaint函数响应这个消息,然后这个函数再调用OnDraw函数。虽然CView类中的OnDraw函数是虚函数,但是我们自己生成的CView类的子类已经将这个函数重载了。
(3)假设我们在自己的View类中重载了OnPaint函数,但是在函数中又没有调用OnDraw函数,那么这个OnDraw函数就完全没有用了。
(4)我们一般用OnPaint维护窗口的一个客户区,比如在窗口客户区添加一个背景图片;而在OnDraw函数中维护视图的客户区,比如用鼠标在客户区画图。
相关文章推荐
- Manual split brain recovery
- scanf 引起的内存泄露
- jenkins fail to checkout from svn-write-through
- 对路径“E:\AnyWise\UnitBusi\XtCal\XtCal.SiteMain”的访问被拒绝。
- using lamda to make RAII idom
- 转载:UNIX系统中wait函数簇和SIGCLD信号的关系
- dmosaic资料
- SCIM: System for Cross-domain Identity Management
- retain two decimal digits.
- Handler sendMessage 与 obtainMessage ()区别
- 今天看到一篇关于DSL(Domain Specific Language)的文章
- Iterator和Enumeration 区别 fail-fast 机制
- Fibonacci Again
- SeeLCSagain
- main()
- poj 1804 Brainman
- AIX常用命令
- 九度题目1436:Repair the Wall
- 2009 Multi-University Training Contest 4 - Host by HDU
- NPAIRS框架的理解