VC怎么给简单对话框应用程序添加背景图片?
在网上找过,不行呀,有的放进去以后有一些的东西没有声明,改了改也没改好;还有的好像是在单文档应用程序里用的吧。谁能给个完整的答案,不作太多修改的...
在网上找过,不行呀,有的放进去以后有一些的东西没有声明,改了改也没改好;还有的好像是在单文档应用程序里用的吧。谁能给个完整的答案,不作太多修改的
展开
2013-07-30
展开全部
我觉得应该这样 ,把你需要的位图作为背景画刷,比如你的工程名为Test那么
在TestDlg.h中添加
CBrush m_brBk;//在public中定义
在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
}
在打开类向导,找到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;
}
在TestDlg.h中添加
CBrush m_brBk;//在public中定义
在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
}
在打开类向导,找到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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-30
展开全部
用 对象名.picture=loadpicture("路径");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-30
展开全部
1.在CBkcolorDlg.h中添加 //在public中定义如下:
CBrush m_brBk;CBitmap bmp; 2. TestDlg.cpp文件中构造函数CBkcolorDlg::CBkcolorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBkcolorDlg::IDD, pParent)中,添加如下代码: //用CBitmap ::LoadBitmap加载位图资源 ,IDB_BITMAP_BKBMP是位图资源的ID标识 bmp.LoadBitmap(IDB_BITMAP_BKBMP); 在初始化对话框的函数CBkcolorDlg::OnInitDialog()中添加如下代码 m_brBk.CreatePatternBrush(&bmp); //创建具有指定位图模式的逻辑刷子
bmp.DeleteObject(); 3.最后在打开类向导,找到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;
}
这样做就可以给对话框添加简单的背景图片了,此代码经过测试。
CBrush m_brBk;CBitmap bmp; 2. TestDlg.cpp文件中构造函数CBkcolorDlg::CBkcolorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBkcolorDlg::IDD, pParent)中,添加如下代码: //用CBitmap ::LoadBitmap加载位图资源 ,IDB_BITMAP_BKBMP是位图资源的ID标识 bmp.LoadBitmap(IDB_BITMAP_BKBMP); 在初始化对话框的函数CBkcolorDlg::OnInitDialog()中添加如下代码 m_brBk.CreatePatternBrush(&bmp); //创建具有指定位图模式的逻辑刷子
bmp.DeleteObject(); 3.最后在打开类向导,找到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;
}
这样做就可以给对话框添加简单的背景图片了,此代码经过测试。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询