OnPaint OnEraseBkgnd的调用关系
来源:互联网 发布:centos 目录权限 编辑:程序博客网 时间:2024/04/27 19:34
以下是定制Button的OnPaint函数,详细说明如下:
void CCustomBtn::OnPaint()
{
CPaintDC dc(this); // CPaintDC 实际上封装了BeginPaing,EndPaint。 BeginPaint() 和EndPaint() 可以删除消息队列中的WM_PAINT消息,并使无效区域有效,以防止因包含无效区域不停得发送WM_PAINT消息。如果无效区域被标记为可擦除的,BeginPaint发送一个WM_ERASEBKGND消息给窗口,WM_ERASEBKGND消息的响应函数既是OnEraseBkGnd(),响应结束后返回。
//OnPaint中绘制代码,此处的绘制将覆盖OnEraseBkgnd中的绘制
CRect rect;
GetClientRect(&rect);
CBrush brush(RGB(255,0,0));
dc.FillRect(rect, &brush);
dc.SetBkMode(TRANSPARENT);
CString strText;
GetWindowText(strText);
dc.DrawText(strText, strText.GetLength(), &rect, 0);
CButton::OnPaint();
}
void CCustomBtn::OnEraseBkgnd(CDC* pDC)
{
//return CButton::OnEraseBkgnd( pDC);//如果调用窗口默认的背景刷,刷新背景,导致闪屏。解决方法:1.在OnPaint中绘制,此函数直接返回TRUE;2.在此处绘制背景,并返回TRUE,OnPaint中不需要绘制背景。
return TRUE;
}
- OnPaint OnEraseBkgnd的调用关系
- OnPaint与OnEraseBkGnd的关系
- OnEraseBkgnd、OnPaint与画面重绘(很好的说明其调用实现关系)
- OnEraseBkGnd() 与OnPaint()的关系,以及解决闪烁的问题
- OnPaint()与OnEraseBkgnd()的差异
- OnPaint和OnEraseBkgnd的区别
- OnPaint()与OnEraseBkgnd()的差异
- OnEraseBkGnd与OnPaint的联系
- OnEraseBkgnd、 OnPaint、 OnCtlColor的作用
- OnEraseBkGnd与OnPaint的联系 .
- OnEraseBkGnd与OnPaint的联系
- MFC 改变对话框的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用次序
- MFC中改变对话框背景的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用顺序
- MFC中改变对话框背景的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用顺序
- MFC中改变对话框背景的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用顺序
- MFC中改变对话框背景的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用顺序
- MFC中改变对话框背景的几个消息函数OnEraseBkgnd、 OnPaint、 OnCtlColor的调用顺序
- OnEraseBkgnd与onpaint的联系(转载)
- Linux内核中常见内存分配函数
- Problem8
- c# winform程序里嵌入FLASH
- 屏蔽基于对话框程序ESC键
- JavaScript利用密钥加密与解密
- OnPaint OnEraseBkgnd的调用关系
- 基于对话框程序添加菜单
- 数据库版本不同导致还原时报错
- vsftp相关
- Extjs grid报this.config[] is undefined
- android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
- CxImage类库使用说明
- 我的计算器01
- tinymce中文的默认字体都是太小