MFC为对话框添加背景图片(非picture control控件)
2015-08-20 22:20
323 查看
项目来源:http://zhidao.baidu.com/link?url=f1UwHd52cb38WpROq5p2zDxwq7Fb_ayfC3u0Hoj2b_vOMbq4lYwH2pHMy4RFUhVFugLqKp9bF9tAhFYDhz2cQK
本文在这里希望把这个东西的设计说的详细一些。
在创建一个MFC的对话框项目后,可以在资源视图中添加位图,如不理解可以在百度中搜索mfc添加位图,相信应该很多,这里就不解释了。
假设我们载入的位图ID为IDB_BITMAP1
在我们对话框的类中的头文件添加如下变量:(如果是主对话框,应该就是C**Dlg.h的一个文件,如果是第二级或第3级的子对话框,需要右键添加一个新的类(如CBDlg继承自CDialog类,然后在在类的头文件中添加变量)
CBrush m_brBk;//在public中定义
在相应的.CPP源文件中:
在初始化函数OnInitDialog()中加入: (如果是后来创建的子对话框没有初始化对话框可以在类向导中找到虚函数OnlnitDialog添加进代码,如果是vs2005或者2008没有类向导的IDE可以百度一下,很简单我记得是打开对话框类的.h头文件,如上文创建的C**Dlg.h文件。右键查看属性,在最上面一栏中应该有田间虚函数的按钮)
(或者在构造函数中)
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
return TRUE; // return TRUE unless you set the focus to a control
}
再打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),
添加如下:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd == this)
{
return m_brBk;
}
return hbr;
}
至此,为对话框添加背景图片就介绍完了。(wince, pc,vs2005,2008,2010测试均可用)
本文在这里希望把这个东西的设计说的详细一些。
在创建一个MFC的对话框项目后,可以在资源视图中添加位图,如不理解可以在百度中搜索mfc添加位图,相信应该很多,这里就不解释了。
假设我们载入的位图ID为IDB_BITMAP1
在我们对话框的类中的头文件添加如下变量:(如果是主对话框,应该就是C**Dlg.h的一个文件,如果是第二级或第3级的子对话框,需要右键添加一个新的类(如CBDlg继承自CDialog类,然后在在类的头文件中添加变量)
CBrush m_brBk;//在public中定义
在相应的.CPP源文件中:
在初始化函数OnInitDialog()中加入: (如果是后来创建的子对话框没有初始化对话框可以在类向导中找到虚函数OnlnitDialog添加进代码,如果是vs2005或者2008没有类向导的IDE可以百度一下,很简单我记得是打开对话框类的.h头文件,如上文创建的C**Dlg.h文件。右键查看属性,在最上面一栏中应该有田间虚函数的按钮)
(或者在构造函数中)
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
return TRUE; // return TRUE unless you set the focus to a control
}
再打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),
添加如下:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd == this)
{
return m_brBk;
}
return hbr;
}
至此,为对话框添加背景图片就介绍完了。(wince, pc,vs2005,2008,2010测试均可用)
相关文章推荐
- bp人工神经网络算法
- 转义字符
- Swift2.0初见笔记
- spring:如何用代码动态向容器中添加或移除Bean ?
- 函数
- 循环赛日程表-附数组指针与二级指针关系详解
- bootstrap注意事项(五)表单
- 做车轮的老人
- 一些java基础方法
- 黑马程序员----关于string类的基本操作举例
- 传送门2号 - 算法 x C++
- struts2-ajax-页面的自动刷新
- JavaScript+CSS实现图片动态轮播dynamic_slider
- scala学习之:Scala中类型变量Bounds及View Bounds
- 代码如人生,模式就是思想
- 子桑唱贫穷之歌
- 三元运算符
- hdu5416树形dp
- 继承和多态、组合下的构造器调用顺序
- 统计简单学_基本概念