MFC—— 背景添加

来源:互联网 发布:茶杯淘宝 编辑:程序博客网 时间:2024/05/22 02:50

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

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




0 0