为什么LoadBitmap会出错?
- C/C++ code
void CDrawCtrl::drawBitmap(IN HDC &hCanvas, IN RECT rcRect, IN INT u32IDBitmapRes){ CDC* pDc = NULL; BOOL bRet = FALSE; CDC MemDC; BITMAP bmpBitMapTmp; CBitmap bmpDrawGraph; pDc = CDC::FromHandle(hCanvas); if(NULL == pDc) { return; } //load bitmap bRet = bmpDrawGraph.LoadBitmap(MAKEINTRESOURCE(u32IDBitmapRes)); // 这句报错 //以下省略}报错后指向 AFXWIN1.INL 这里
- C/C++ code
_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle() { ASSERT(afxCurrentResourceHandle != NULL); 为什么同一段代码,我有些程序调用就ok,有些就会报错?u32IDBitmapRes参数是否可以为未定义的资源ID?
[解决办法]
要是定义的ID
[解决办法]
CBitmap bmp;
HBITMAP hbmp;
//使图片不失真,先将位图加载
hbmp= (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(nIDRes),
IMAGE_BITMAP, //按位图格式
0,0,
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
bmp.Attach(hbmp);
[解决办法]
你的资源ID存在??
[解决办法]
CBitmap bmpDrawGraph
把这个设成类的成员变量就可以了,显示不出来是因为你的bmpDrawGraph对象提前销毁的事。