wince下图片显示的问题。
我用的事vs2005编程,wince的模拟器运行。我首先在PC上实现了打开图片并且显示,但是移到CE下可以运行,但是当一点击打开图片的时候,立即系统报错,说出现严重错误,强制关闭。困扰我一周了,就是解决不了。我换过很多中方式,还是不知道问题在哪里。请高手帮我看看。附代码:
void CtestView::ShowBitmap(CDC* pDC,CString strPicPath)//显示BMP图片
{
HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,strPicPath,IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
m_bitmap.Detach();
m_bitmap.Attach(hBitmap);
CRect rect;
GetClientRect(&rect);
CDC dcImage;
if (!dcImage.CreateCompatibleDC(pDC))
{
return;
}
BITMAP bm;
m_bitmap.GetBitmap(&bm);//在这里报错,不能再运行了。 dcImage.SelectObject(&m_bitmap);
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcImage,0,0,SRCCOPY); //图片保留原始大小
}
这是路径获取已经运行的代码:
void CtestView::OnDraw(CDC* pDC)
{
CtestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: 在此处为本机数据添加绘制代码
//next newsss
if (!pDoc)
return;
if (0 == extname.Compare(_T("bmp")))
{
ShowBitmap(pDC,strPicPath);
}
else
{
if (0 == extname.Compare(_T("jpg"))||0 == extname.Compare(_T("jpeg"))||0 == extname.Compare(_T("gif")))
{
ShowPic(pDC,strPicPath);
}
}
}
求高手一定帮帮我。
[解决办法]
你调式一下看m_bitmap是否有值,否则自然无法获取位图信息啊!
[解决办法]
RECT rcClient;
pT->GetClientRect ( &rcClient );
BITMAP bm;
m_Bitmap.GetBitmap(&bm);
CDC memDC;
memDC.CreateCompatibleDC(hDC);
HBITMAP hOldBmp = memDC.SelectBitmap(m_Bitmap);
StretchBlt(hDC,0,0,rcClient.right - rcClient.left,rcClient.bottom - rcClient.top,memDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
memDC.SelectBitmap(hOldBmp);
memDC.DeleteDC();
这个我程序里面用过的,你照样修改一下试试……我这是可以用
[解决办法]
m_bitmap.GetBitmap(&bm);//在这里报错,不能再运行了。
-----------
报什么错误 是不是空指针