onerasebabkgnd

CWnd::OnEraseBkgnd afx_msg BOOL OnEraseBkgnd( CDC* pDC ); 返回值:如果它擦除了背景,则返回非零值;否则返回0。

  参数:
  
pDC 指定了设备环境对象。
 说明:
  当CWnd对象的背景需要被擦除时(例如,当窗口大小被改变时),框架就调用这个函数。它被调用以便为绘图准备无效区域。
  缺省的实现使用 窗口类结构中hbrBackground成员指定的窗口类背景刷子擦除窗口背景。
  如果hbrBackground成员为NULL,你 重载的OnEraseBkgnd必须擦除背景色。你的 重载函数也可以为刷子调用 UnrealizeObject函数,将目标刷子的原点与CWnd的坐标对齐,然后选择该刷子。
  如果重载的OnEraseBkgnd在响应WM_ERASEBKGND时处理了这个消息并擦除了背景,则应当返回非零值,表明不需要进一步擦除。如果它返回0,则窗口依然被标记为需要擦除(通常,这意味着PAINTSTRUCT结构的fErase成员将为TRUE)。
  Windows假定背景是用MM_TEXT映射模式计算的。如果设备环境使用了其它映射模式,则擦除的区域可能不在客户区的可见部分之内。
  注意 框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的 基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。
  问: OnEraseBkgnd函数中返回TRUE或FALSE有什么区别?
  答: WM_ERASEBKGNDReturn ValuesAn application should return nonzero if it erases the background; otherwise, it should return zero. A:true表示已处理背景刷新,false表示需要在OnPaint里处理
  问:在OnEraseBkgnd中绘制对话框的背景图片和在OnPaint中绘制对话框的背景图片由什么区别,另外OnEraseBkgnd和CtlColor有什么区别?
  答: OnEraseBkgnd是在窗口大小发生改变等情况下发生的,它将绘制窗口背景;而 OnCtlColor是当窗口的控件需要绘制时发生的,它将绘制窗口的控件。 A:OnEraseBkgnd :在窗口背景需要重绘时调用.OnPaint : 此时OnEraseBkgnd已经调用过了,所以在此响应函数体内对背景进行的操作将覆盖OnEraseBkgnd中所做的操作.OnCtlColor : 由于在窗口将要被(第一次)绘制时响应,子窗口可以通过发送WM_CTLCOLOR请求父窗口传来一个HBRUSH.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值