MFC对话框界面美化

来源:互联网 发布:win7 nls数据丢失 编辑:程序博客网 时间:2024/04/29 11:15

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、源码下载

点击打开链接


0 0
原创粉丝点击