在windows mobile6下用LoadImage加载位图,但是始终都是加载失败,于是就改换为SHLoadImageFile,结果可以了。代码如下:
CRect rect; //获得客户区大小
GetClientRect(&rect);
CBitmap *m_pBmp;
TCHAR *pName = _T("//Storage Card//test.bmp");
//HBITMAP m_hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), pName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
HBITMAP m_hBmp = SHLoadImageFile(pName);
m_pBmp = CBitmap::FromHandle(m_hBmp);
BITMAP bmp;
m_pBmp->GetBitmap(&bmp); //获取位图的尺寸大小
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(&dc); //创建兼容dc
dcCompatible.SelectObject(m_pBmp); //将位图选到兼容dc中,在dc中显示位图的大小
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcCompatible, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
DeleteObject(m_pBmp);