BOOL CInfoDlg::ShowPic(HDC hdc, const TCHAR *filename, int nStartX, int nStartY, int nChangeX, int nChangeY)
{
IImagingFactory *pImgFactory = NULL;
IImage *pImage = NULL;
ImageInfo imageInfo;
RECT dstRc;
if(FAILED(CoInitializeEx(NULL,COINIT_MULTITHREADED)))
{
MessageBox(TEXT( "CoInitializeEx "));
}
if(SUCCEEDED(CoCreateInstance(CLSID_ImagingFactory,
NULL,CLSCTX_INPROC_SERVER,
IID_IImagingFactory,
(void **)&pImgFactory)))
{
if (SUCCEEDED(pImgFactory->CreateImageFromFile(filename,&pImage)))
{
pImage-> GetImageInfo(&imageInfo);
dstRc.left = nStartX;
dstRc.top = nStartY;
dstRc.right = nStartX + nChangeX;
dstRc.bottom = nStartY + nChangeY;
pImage-> Draw(hdc, &dstRc, NULL);
pImage-> Release();
}
else
{
MessageBox(TEXT( "CreateImageFromFile "));
// AfxMessageBox("CreateImageFromFile");
pImgFactory = NULL;
pImage = NULL;
CoUninitialize();
return FALSE;
}
}
else
{
MessageBox(TEXT( "CoCreateInstance "));
pImgFactory = NULL;
pImage = NULL;
CoUninitialize();
return FALSE;
}
pImgFactory = NULL;
pImage = NULL;
CoUninitialize();
return TRUE;
}
上面是我的代码,实现是在onpaint中,ShowPic(dc, _T("\\exitdown.png"), 10, 10, 24, 24);
图片是放在F:\GPS\exitdown.png 图片的路径我换过很多,也试过相对路径和绝对路径的表示,但是运行倒if (SUCCEEDED(pImgFactory->CreateImageFromFile(filename,&pImage))) 时,就跳到ELSE去运行了,弄了我很长时间,快要崩溃了,跪求大侠拔刀相助。。。。。。。。。
你这个是在wince下运行的程序吗?
WinCE下怎么会有F:这样的东东呢?WinCE是不支持相对路径的。
我是在模拟器上运行,我应该如何表示我的路径呢,我的图片是放在工程路径F:\GPS\EXIT.PNG
我试了很多表示方法还是不行,苦恼中,。。。。。。。。。。。
用根目录 绝对路径~
如\\temp\\1.png
建议用目标机上做试验测试,模拟器上容易产生误导。
并注意图片存放的目录等。
真的是目录的问题谢谢各位。。。\\Storage Card\\xx.png