首页 > 学院 > 开发设计 > 正文

MFC学习(六)—— 背景添加

2019-11-06 07:07:12
字体:
来源:转载
供稿:网友

方法一:利用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();	}}

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表