在MFC中通过点击按钮加载任意路径下的图片到picture control,那怎么获取加载的哪副图片,代码如何实现?
展开全部
监听CListCtrl控件的选中事件,在选中事件中从控件获取选中项的文字(GetItemText),这个文字就是文件名。然后使用文件名取读取图片文件,并将图片设置到PicureBox控件上。
追问
我是设置一个按钮,点击按钮,可以加载任意路径下的图片到picture control,那么我怎么在程序中获取我加载的是哪副图片呢?也就是加载图片的文件名怎么获取呢?能呈现下代码吗?您的意思我不是很明白,是给按钮加载变量还是给picture control加载变量,然后使用GetItemText来获取文件名吗?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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,其他控件同上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询