首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为什么LoadBitmap会出错?该怎么处理

2012-05-16 
为什么LoadBitmap会出错?C/C++ codevoid CDrawCtrl::drawBitmap(IN HDC &hCanvas,IN RECT rcRect,IN INT u

为什么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对象提前销毁的事。

热点排行