1.给按钮添加背景图像的方法:
首先,切换“解决方案资源管理器”到“资源视图”,右击项目->添加资源->Bitmap->导入,导入所需的*.bmp图片,如下图,最后在资源视图里的生成新的文件夹Bitmap,如下图所示,特别要记住图片的ID号。


然后在源文件中的OnInitDialog()函数里添加代码,如下所示:
HBITMAP hBitmap1=LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
CButton *pButton1=(CButton*)GetDlgItem(IDC_BUTTON_ZOOM_IN);
pButton1->SetBitmap(hBitmap1);

其中,IDB_BITMAP1为位图的ID号码,IDC_BUTTON_ZOOM_IN为按钮的ID号码。运行起来即可见效果。


1.给对话框dailog添加背景图片的方法:
<1>同样如上,先载入一张图片,如ID为IDB_BITMAP2

<2>TestDlg.h中
CBrush m_brBk;//在public中定义

<3>TestDlg.cpp中
在初始化函数OnInitDialog()中加入:

BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();

CBitmap bmp;

bmp.LoadBitmap(IDB_BITMAP2);

m_brBk.CreatePatternBrush(&bmp);

bmp.DeleteObject();

  return TRUE;   // return TRUE   unless you set the focus to a control
}

<4>在打开类向导,找到WM_CTLCOLOR消息,就是点击对话框,然后在对话框的属性->消息->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;
}

如果此时出现如下的错误:
VC2005:无法执行添加/移除操作,因为代码元素”***dlg”是只读的

解决方法如下:
1、重启VC

2、打开Resource.h文件看看 一看就知道了 有些定义重复了 可以手动改掉,保存,编辑器重新加载 。

3、关闭解决方案,删除ncb文件重新添加即可(在你创建的项目里,一般在我的文档/d:\我的文档\Visual Studio 2008\Projects\项目名\里)

4、实在不行就手动添加消息处理。
5、查看.h和.cpp文件的属性,有可能是只读的,修改属性后就可以了。

把你要添加事件的对话框相应的类文件(*.h和*.cpp)给关了就可以了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code