C++ MFC 打开bmp图片,编译没问题,运行报错

我建立的是单文本框

void Cdcmtest1View::OnDraw(CDC* pDC)
{

Cdcmtest1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

////////////////////////////////////////////////////////
HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,pDoc->strPicPath,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
m_bitMap.Detach();
m_bitMap.Attach(hBitmap);
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);
}
难道是我要写到OnPaint里?

这是出的错
HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,pDoc->strPicPath,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);

注意耐毁这句,你的pDoc->strPicPath, Doc对象在View对象之后创建,所以引用这个字符串时昌含备,Doc对象还没有创建,所以才出现这种情况。把这个图片路老游径的字符串初始化,换到View类中执行。再试试~~
你确定HBITMAP hBitmap获取了正确的位图句柄?检查一下是不是为NULL
C++ MFC 打开bmp图片,编译没问题,运行报错
← 上一篇: 下一篇: →