MFC对话框界面美化
2016-01-04 16:26
447 查看
1、MFC标准对话框界面
MFC标准对话框界面并不美观,也不符合产品个性化需求,因此需要对对话框界面进行美化。
可以增加如下美化工作:
1)背景贴图
2)控件贴图
3)控件类优化
2、背景贴图
添加消息相应函数OnEraseBkgnd
BOOL CuiDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect;
GetClientRect(&rect);
CBitmap m_pBmp;
BITMAP bm;
CDC dcMem;
m_pBmp.LoadBitmap(IDB_BITMAP1);
m_pBmp.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(0,0,rect.Width() ,rect.Height(),
&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(pOldBitmap);
return TRUE;
//return CDialogEx::OnEraseBkgnd(pDC);
}
为了使图片IDB_BITMAP1在对话框中正常显示,注释掉系统添加的返回语句
return CDialogEx::OnEraseBkgnd(pDC);
修改成return TRUE;
3、控件贴图
HBITMAP hBitmap;
hBitmap = LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BTN_MATCH));
((CButton *)GetDlgItem(IDC_BTN_TOOL_MATCH))->SetBitmap(hBitmap);
加载图片IDB_BTN_MATCH,并与按键IDC_BTN_TOOL_MATCH关联。
4、控件类优化
CShadeButtonST m_BtnStart;
m_BtnStart.SetBitmaps(IDB_BMP_RUN,RGB(0,0,0));
CShadeButtonST 类,通过调用SetBitmaps成员函数,可以直接添加图片IDB_BMP_RUN,
并指定透明色RGB(0,0,0),这样就可以根据图片的形状来显示按键。
但是需要添加老外写的几个类的定义,以下相关头文件和源文件:
1)ShadeButtonST.h和ShadeButtonST.cpp
2)BtnST.h和BtnST.cpp
3)BCMenu.h和BCMenu.cpp
4)CeXDib.h和CeXDib.cpp
5、源码下载
点击打开链接
MFC标准对话框界面并不美观,也不符合产品个性化需求,因此需要对对话框界面进行美化。
可以增加如下美化工作:
1)背景贴图
2)控件贴图
3)控件类优化
2、背景贴图
添加消息相应函数OnEraseBkgnd
BOOL CuiDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect;
GetClientRect(&rect);
CBitmap m_pBmp;
BITMAP bm;
CDC dcMem;
m_pBmp.LoadBitmap(IDB_BITMAP1);
m_pBmp.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(0,0,rect.Width() ,rect.Height(),
&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(pOldBitmap);
return TRUE;
//return CDialogEx::OnEraseBkgnd(pDC);
}
为了使图片IDB_BITMAP1在对话框中正常显示,注释掉系统添加的返回语句
return CDialogEx::OnEraseBkgnd(pDC);
修改成return TRUE;
3、控件贴图
HBITMAP hBitmap;
hBitmap = LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BTN_MATCH));
((CButton *)GetDlgItem(IDC_BTN_TOOL_MATCH))->SetBitmap(hBitmap);
加载图片IDB_BTN_MATCH,并与按键IDC_BTN_TOOL_MATCH关联。
4、控件类优化
CShadeButtonST m_BtnStart;
m_BtnStart.SetBitmaps(IDB_BMP_RUN,RGB(0,0,0));
CShadeButtonST 类,通过调用SetBitmaps成员函数,可以直接添加图片IDB_BMP_RUN,
并指定透明色RGB(0,0,0),这样就可以根据图片的形状来显示按键。
但是需要添加老外写的几个类的定义,以下相关头文件和源文件:
1)ShadeButtonST.h和ShadeButtonST.cpp
2)BtnST.h和BtnST.cpp
3)BCMenu.h和BCMenu.cpp
4)CeXDib.h和CeXDib.cpp
5、源码下载
点击打开链接
相关文章推荐
- Android QQ音乐/酷狗音乐锁屏控制实现原理,酷狗锁屏
- spring的jar包下载
- 阿里云服务器修改administrator的密码
- 在linux下用tomcat部署java web项目的过程与注意事项(原创)
- 最新版SDWebImage的使用
- unity3d之 C# WaitFOrSeconds()
- PostgreSQL新手入门
- window下pthreads扩展安装
- 【数组】Two Sum
- Windows 7 中未能从程序集System.ServiceModel
- PHP READ PPT FILE
- Java多线程面试问题
- Win10下DotNet程序兼容性,切换DotNet4.6的RyuJIT为原来的LegacyJIT
- /proc/pid/stat字段说明
- Microsoft Virtual PC 2007安装XP后鼠标无法移动
- install openstack liberty in ubuntu 14.04 server
- 无法在WEB服务器上启动调试,Web 服务器配置不正确
- jquery-ui draggable參數方法事件
- Buffer和Cache的区别
- 在linux下配置javaWeb项目.sh部署脚本