方法一:利用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(); }}运行以后,一样显示出图片,但是对于图片的范围更加广泛,可以添加自己喜欢的图片作为背景
新闻热点
疑难解答