首页 > 代码库 > VC++对话框(CDialog)添加背景图片
VC++对话框(CDialog)添加背景图片
在对话框(CDialog)程序中,为了让程序看上去漂亮一些,我们可以为对话框添加一个好看的背景图片,要想完成这个目标,可以利用afx_msg BOOLOnEraseBkgnd (CDC* pDC) 这个函数。
下面结合实例说明(实例可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/8337225):
(1)找来一张合适的BMP格式的背景图片,将其放在工程的res目录下,然后在程序的资源视图中,将这张图片导入进来(假设导入后其ID为:IDB_BITMAP1)。
(2)在对话框的.h文件中添加函数声明:
afx_msg BOOL OnEraseBkgnd (CDC* pDC);
(3)在对话框的.cpp文件中添加其消息映射宏:
BEGIN_MESSAGE_MAP(CPoint22Dlg, CDialog) ON_WM_ERASEBKGND()//消息映射宏 END_MESSAGE_MAP()
(4)在对话框的.cpp文件中实现该函数功能:
BOOL CPoint22Dlg::OnEraseBkgnd(CDC* pDC) //为对话框添加背景图片 { CDialog::OnEraseBkgnd(pDC); CBitmap m_bitmap; m_bitmap.LoadBitmap (IDB_BITMAP1); if (!m_bitmap.m_hObject) return true; CRect rect; GetClientRect(&rect); CDC dc; dc.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = dc.SelectObject(&m_bitmap); int bmw, bmh ; BITMAP bmap; m_bitmap.GetBitmap(&bmap); bmw = bmap.bmWidth; bmh = bmap.bmHeight; int xo=0, yo=0; /*函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。*/ pDC->StretchBlt(xo, yo, rect.Width(),rect.Height(), &dc,0, 0,bmw,bmh, SRCCOPY); dc.SelectObject(pOldBitmap); return true; }
VC++对话框(CDialog)添加背景图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。