VS2010用MFC文件对话框实现如下功能,点击“打开”按钮,选一张图片显示到图片控件中,程序该怎么写?

void CshiDlg::OnBnClickedOpenButton1() //按钮程序{ TCHAR szFilter[] = _T("所有文件(*.*)|*.*||"); // 构造打开文件对话框 CFileDialog fileDlg(TRUE, _T("bmp"), NULL, 0, szFilter, this); CString strFilePath; // 显示打开文件对话框 if (IDOK == fileDlg.DoModal()) { 这里面应该是显示一张图片到picture control控件上的程序,该怎么写呢? }

这样??? GIF动图, 请单击一下图片

追问

是的是的

追答

picture控件ID为: IDC_STATIC_PNG

在button响应函数中:

CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("png Files(*.png)|*.png||"), this);
fileDlg.DoModal();
CString strFilePath;
strFilePath = fileDlg.GetPathName();
if (strFilePath == _T(""))
{
return;
}
CRect rc;
GetDlgItem(IDC_STATIC_PNG)->GetClientRect(rc);
CImage image;
image.Load(strFilePath); //图片文件路径
if (image.GetBPP() == 32)
{
int i; int j;
for (i = 0; i < image.GetWidth(); i++)
{
for (j = 0; j < image.GetHeight(); j++)
{
byte *pByte = (byte *)image.GetPixelAddress(i, j);
pByte[0] = pByte[0] * pByte[3] / 255;
pByte[1] = pByte[1] * pByte[3] / 255;
pByte[2] = pByte[2] * pByte[3] / 255;
}
}
}
CDC* dc;
dc = GetDlgItem(IDC_STATIC_PNG)->GetDC();

image.Draw(dc->m_hDC, rc);

ReleaseDC(dc);

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答