MFC—— 背景添加

方法一:利用Picture控件

(1)新建MFC应用程序

(2)在应用程序中,选择基于对话框,其他保持默认即可

(3)右击项目,选择添加资源

(4)在工具箱里找到Picture控件拖到界面中

(5)在界面上点击选中Picture控件,然后在属性的Type下拉框中,选择Bitmap

(6)再在Picture控件的属性的Type下拉框中插入的图片资源选择好后,图片就可以加载进对话框

方法二:重载OnCtlColor()函数

(1)和方法一一样插入一个图片

(2)在项目的头文件里public:添加CBrush m_brBk ;

(3)在初始化函数中添加如下代码:


(4)点击控件的消息栏,在栏框中添加OnCtlColor函数


运行程序后两种方法都能成功显示图片,但是这样做有一个缺点,就是所能用的图片格式比较少,一般只有bitmap格式的图片才行,并且图片太大可能都无法读取,所以第三种方法个人比较推荐:

方法三(3)CImage:

(1)在工程的类中添加:public:CImage m_image; //创建图片类  

(2)在初始化函数中:


程序中自己给每个步骤都给了注释,这样看的更明白一些

(3)添加onpaint函数:

void CABCBankDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CWnd * pPic = GetDlgItem(IDC_PIC1);
		if (pPic == NULL)
		{
			AfxMessageBox(TEXT("Get Pic Error!"));
			return;
		}

		RECT rc;
		pPic->GetClientRect(&rc);//获得pictrue控件所在的矩形区域  

		CDC *pDC=pPic->GetDC();//获得pictrue控件的DC  

		m_image.Draw(pDC->m_hDC, rc); //将图片画到Picture控件表示的矩形区域  
		ReleaseDC(pDC);//释放picture控件的DC  
		CDialogEx::OnPaint();
	}
}

运行以后,一样显示出图片,但是对于图片的范围更加广泛,可以添加自己喜欢的图片作为背景




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值