MFC学习笔记之OnPaint和OnDraw之间的关系

       以前一直疑惑,又mfc向导产生的文档类模板程序中绘图用的是OnDraw,而自动生成的对话框类程序中绘图用的是OnPaint,如果在文档类程序中添加OnPaint消息后,OnDraw就会失效。现在终于搞明白了,如果我们没有自定义OnPaint消息,则当WM_PAINT消息产生时,将会被其基类CView所截获,即调用CView::OnPaint函数,其定义如下

        void CView::OnPaint(){

                 // standard paint routine

                CPaintDC dc(this);

                OnPrepareDC(&dc);

                OnDraw(&dc);

       }

由以上定义可以看出,其实是CView中的OnPaint函数调用了OnDraw函数。如果我们自定义了OnPaint函数,则消息将被自定义的OnPaint函数所截获,而自定义的OnPaint函数中又没有调用OnDraw函数,故而OnDraw函数就失效了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值