在MFC中通过点击按钮加载任意路径下的图片到picture control,那怎么获取加载的哪副图片,代码如何实现?
1个回答
展开全部
CImage myImage;
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, _T("Picture Files (*.bmp *.jpg)|*bmp;;*jpg||"), AfxGetMainWnd());
CString pathName;
if (fileDlg.DoModal() == IDOK)
{
POSITION mPos = fileDlg.GetStartPosition();
if (mPos != NULL)
{
pathName = (LPCTSTR)fileDlg.GetPathName();
if (!myImage.IsNull())//判断图象是否为空,如果不为空则先释放掉
myImage.Destroy();
myImage.Load(pathName);
}
}
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_STATIC);
CDC *pDC = pWnd->GetDC();
//第1个控件
pWnd->GetClientRect(&rect); //取得客户区尺寸
pDC->SetStretchBltMode(STRETCH_HALFTONE); //保持图片不失真
myImage.Draw(pDC->m_hDC, rect); //已控件尺寸大小来绘图
ReleaseDC(pDC);
myImage.Destroy();
//代码CWnd *pWnd = GetDlgItem(IDC_STATIC);其中IDC_STATIC是控件的ID,内容就是你放的图片。
单击你放汪笑的picture control 框子,框子外面有黑线高宴说明选中了,再点击属性,在杂项下,ID那儿会显示你的控件ID,其他控件同上。戚陵银
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, _T("Picture Files (*.bmp *.jpg)|*bmp;;*jpg||"), AfxGetMainWnd());
CString pathName;
if (fileDlg.DoModal() == IDOK)
{
POSITION mPos = fileDlg.GetStartPosition();
if (mPos != NULL)
{
pathName = (LPCTSTR)fileDlg.GetPathName();
if (!myImage.IsNull())//判断图象是否为空,如果不为空则先释放掉
myImage.Destroy();
myImage.Load(pathName);
}
}
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_STATIC);
CDC *pDC = pWnd->GetDC();
//第1个控件
pWnd->GetClientRect(&rect); //取得客户区尺寸
pDC->SetStretchBltMode(STRETCH_HALFTONE); //保持图片不失真
myImage.Draw(pDC->m_hDC, rect); //已控件尺寸大小来绘图
ReleaseDC(pDC);
myImage.Destroy();
//代码CWnd *pWnd = GetDlgItem(IDC_STATIC);其中IDC_STATIC是控件的ID,内容就是你放的图片。
单击你放汪笑的picture control 框子,框子外面有黑线高宴说明选中了,再点击属性,在杂项下,ID那儿会显示你的控件ID,其他控件同上。戚陵银
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询