在VC图片控件显示固定图片程序怎么设计?
现有程序是点击输入,自己选择图片,如何改成点击自动出来程序里已经选好的图片?
程序如下
//*****************************************************************************
// 显示JPEG格式图片
//*****************************************************************************
BOOL CPictureDlg::DisplayPicture(LPCTSTR lpszFileName)
{
CFile file;
if(!file.Open(lpszFileName, CFile::modeRead)) return FALSE;
//得到文件大小
DWORD dwSize = file.GetLength();
//分配内存
HGLOBAL hMem = ::GlobalAlloc(GMEM_MOVEABLE, dwSize);
if(hMem == NULL) return FALSE;
//锁定内存
LPVOID pDes = ::GlobalLock(hMem);
if(pDes == NULL)
{
::GlobalFree(hMem);
return FALSE;
}
//读文件到内存
file.ReadHuge(pDes, dwSize);
//关闭文件,解锁内存块
file.Close();
GlobalUnlock(hMem);
//创建一个IStream接口指针,用来保存图片流
IStream* pIStream = NULL;
CreateStreamOnHGlobal(hMem, TRUE, &pIStream);
//如果pIPicture不为空, 先释放pIPicture
if(pIPicture != NULL) pIPicture->Release();
//用OleLoadPicture获得IPicture接口指针
if(!SUCCEEDED(OleLoadPicture(pIStream, dwSize, TRUE, IID_IPicture, (LPVOID*)&pIPicture)))
{
pIStream -> Release();
::GlobalFree(hMem);
return FALSE;
}
GlobalFree(hMem); //释放全局内存
pIStream->Release(); //释放pIStream
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
//用接口方法获得图片的宽和高
pIPicture->get_Width(&hmWidth);
pIPicture->get_Height(&hmHeight);
//保存图像大小
m_size.cx = hmWidth;
m_size.cy = hmHeight; //保存图像大小
//窗口重绘,用于在PAINT里显示图像
Invalidate();
return TRUE;
}
void CPictureDlg::OnButtonLoad()
{
CStdioFile file;
CString strName;
CFileDialog dlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, _T("JPEG图像文件(*.jpg)|*.jpg|全部文件(*.*)|*.*||"), AfxGetMainWnd());
if(dlg.DoModal() == IDOK)
{
//得到文件名
strName = dlg.GetPathName();
//显示图像
DisplayPicture(strName);
}
}
,
[最优解释]
void CPictureDlg::OnButtonLoad()
{
CStdioFile file;
CString strName = "x:\\xxxxxxx";//你需要的文件路径
//显示图像
DisplayPicture(strName);
}