怎么在按MFC的打开之后打开一个图片让图片显示在MFC窗体里?

怎么在按MFC的打开之后打开一个图片让图片显示在MFC窗体里?用MFC创建了一个对话框,在对话框中插入了菜单,在菜单文件下有打开,怎么使打开能够像咱们的菜单中的打开一样,... 怎么在按MFC的打开之后打开一个图片让图片显示在MFC窗体里?
用MFC创建了一个对话框,在对话框中插入了菜单,在菜单文件下有打开,怎么使打开能够像咱们的菜单中的打开一样,选择图片,并可以使图片显示在对话框中。各位大神指导!!!
亲自指导的站内联系!
有相关资料的请发邮箱:eedsrxd@163.com
展开
 我来答
冰血无双
推荐于2016-07-04 · TA获得超过246个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:324万
展开全部

对话框添加Pic控件 类型选择bitmap 关联Control类型变量m_pic


菜单消息处理函数内部

追问
我做的是动态添加图片,可不可以私下指点一下
追答
私信中见qq
luvnn
2014-03-13 · TA获得超过160个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:104万
展开全部
给你个例子吧,之前做过类似的。希望对你有帮助

BITMAPFILEHEADER bmpHeader;//文件头
BITMAPINFOHEADER bmpInfo;//信息头
CFileDialog dlg(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|",this);
CFile bmpFile;//记录打开文件
CString strFileName;//记录选择文件路径
if (!dlg.DoModal() == IDOK) return;
strFileName = dlg.GetPathName();

//以只读的方式打开文件
if(!bmpFile.Open(strFileName, CFile::modeRead|CFile::typeBinary)) return;
if (bmpFile.Read(&bmpHeader,sizeof(BITMAPFILEHEADER)) != sizeof(BITMAPFILEHEADER))
{
AfxMessageBox("read bmp header failed!");
return;
}
if (bmpHeader.bfType != 0x4d42)
{
AfxMessageBox("invalid file type!");
return;
}
if (bmpFile.Read(&bmpInfo,sizeof(BITMAPINFOHEADER)) != sizeof(BITMAPINFOHEADER))
{
AfxMessageBox("read bmp infor header failed!");
return;
}
if (bmpInfo.biBitCount != 24)
{
AfxMessageBox("File is not 24 bit.Application doesn't support this kind of file!");
return;
}
pBmpInfo = (BITMAPINFO *)new char[sizeof(BITMAPINFOHEADER)];
if (!pBmpInfo)
{
AfxMessageBox("memory error!");
return;
}
//为图像数据申请空间
memcpy(pBmpInfo,&bmpInfo,sizeof(BITMAPINFOHEADER));
DWORD dataBytes = bmpHeader.bfSize - bmpHeader.bfOffBits;
pBmpData = (BYTE*)new char[dataBytes];
if (!pBmpData)
{
AfxMessageBox("memory error!");
delete pBmpData;
return;
}
if (bmpFile.Read(pBmpData,dataBytes) != dataBytes)
{
AfxMessageBox("Read bmp data failed!");
delete pBmpInfo;
delete pBmpData;
return;
}
bmpFile.Close();

CWnd *pWnd=GetDlgItem(IDC_PICTURE);//获得pictrue控件窗口的句柄
CRect rect;
pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域
CDC *pDC=pWnd->GetDC();//获得pictrue控件的DC

pDC->SetStretchBltMode(COLORONCOLOR);

StretchDIBits(pDC->GetSafeHdc(),0,0,rect.Width(),rect.Height(),0,0,bmpInfo.biWidth,bmpInfo.biHeight,pBmpData,pBmpInfo,DIB_RGB_COLORS,SRCCOPY);

iBmpWidth=bmpInfo.biWidth;
iBmpHeight=bmpInfo.biHeight;
更多追问追答
追问
可不可以私下交流一下,我刚上手
可不可以私下交流一下,我刚上手
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式