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;
}
时间: 2024-08-20 06:31:19

VC++对话框(CDialog)添加背景图片的相关文章

VC之CButton添加背景图片的方法

方法1. 使用CBitmap CBitmap m_bitmap; m_bitmap.LoadBitmap(IDB_BITMAP1); HBITMAP hBitmap = (HBITMAP)m_bitmap.GetSafeHandle(); ((CButton *)GetDlgItem(IDC_BUTTON1))->SetBitmap(hBitmap); 方法2. 使用CBitmapButton (1) 在对话框类里定义成员变量:CBitmapButton m_btn 方法: 先添加按钮的CBut

VC++MFC对话框程序中给对话添加背景图片

VC对话框怎么显示背景图片呢.在MFC中实现背景图片,不像C#应用程序那么简单.今天就和朋友们说说如何在VC界面中设置背景图片 ^_^ 工具/原料 Visual C++ 2010 方法一:用Picture控件 1 新建MFC应用程序 2 在应用程序中,选择基于对话框,其他保持默认即可 3 右击项目,选择添加-资源 4 在添加资源对话框中,点击导入,选择要作为背景的图片 jpg格式的图片可以用画图打开另存为bmp格式 (网上说可以直接jpg格式,自行实验未成功) 下方对话框中资源类型选为bitma

MFC程序实现给对话框添加背景图片

1.插入一个Bitmap的资源图片,假设资源名称为:IDC_BITMAP1 2.在CXXXDialog::OnPaint()中实现: void CMyDialogDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cx

C#(winform)为button添加背景图片

1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  Button.Image = ""; 因为使用BackgroudImage来设置背景图片,我们还可以使用 BackgroundImageLayout来调节图片,让图片更好的显示在button上 通常使用: 1 this.btnReset.BackgroundImage = global::Test.Properties.Resources.b

MFC添加背景图片

1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBack

导航链接添加背景图片替换样式

HTMl代码: <div class="welcome_button"> <ul> <li><a href="#">signup</a></li> <li><a href="#">login</a></li> </ul> </div> CSS样式: <style type="text/cs

swing-窗体添加背景图片的2种方法

在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍.1.利用JLabel加载图片利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBounds(0, 0, frameSize.width, frameSize.height); this.getC

Java怎么添加背景图片

首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; 也可以用: import java.awt.*: import javax.swing.*: 接着,创建一个Java窗体对象,并设置为可见 e

如何在使用itext生成pdf文档时给文档添加背景图片

这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片.在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面.这又分为两种情况,一是局部的背景图片,一是全局的背景图片.局部的背景图片一般很少遇到,这里我要加的是整体上的一个背景图片.它往往是一些单纯的颜色图片,跟网页的背景图片一样.所以怎么做?我突发奇想,just do it,把图片加进去再说,试试居然成功了,很简单,像往常一样将图片加载到文档即可,只不过,要将