CView中OnDraw( )的调用

1、在程序启动时生成客户区的时候调用一次

2、客户区更改、移动或覆盖也会调用(多次)

3、应用程序中几乎所有的绘图都在视图的 OnDraw 成员函数中发生,必须在视图类中重写该成员函数。

   OnDraw 重写:

    (1).通过调用您提供的文档成员函数获取数据。
    (2).通过调用框架传递给 OnDraw 的设备上下文对象的成员函数来显示数据。

    当文档的数据以某种方式更改后,必须重绘视图以反映该更改。一般情况下,这在用户通过视图在文档上做更改时发生。在此情况下,视图调用文档的UpdateAllViews 成员函数,通知同一文档上的所有视图对自身进行更新。UpdateAllViews 调用每个视图的 OnUpdate 成员函数。默认的 OnUpdate 实现使视图的整个工作区无效。可以重写默认的 OnUpdate 实现,仅使工作区中映射到文档修改部分的那些区域无效。

     CDocument 类的 UpdateAllViews 成员函数和 CView 类的 OnUpdate 成员函数使您得以传递描述被修改的文档部分的信息。此“提示”机制使您得以限制视图必须重绘的区域。OnUpdate 采用两个“提示”参数。第一个是 lHint,它属于 LPARAM 类型,使您得以传递所需的任何数据;而第二个是 pHint,它属于CObject* 类型,使您得以将指针传递给从 CObject 派生的任何对象。

    当视图变得无效时,Windows 将 WM_PAINT 消息发送给它。该视图的 OnPaint 处理函数通过创建 CPaintDC 类的设备上下文对象来响应该消息并调用视图的OnDraw 成员函数。通常不必编写重写的 OnPaint 处理成员函数。

    设备上下文是包含设备(例如显示器或打印机)绘图属性信息的 Windows 数据结构。所有的绘图调用都通过设备上下文对象进行。对于屏幕上的绘图,CPaintDC对象传递给 OnDraw。对于打印机上的绘图,为当前打印机设置的 CDC 对象传递给 OnDraw

    视图中的绘图代码首先检索指向文档的指针,然后通过设备上下文进行绘图调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值