if( m_bmp.m_hObject != NULL )//判断
m_bmp.DeleteObject();
/////////载入图片
HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
file, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);奇怪,file文件明明存在,但返回hbmp =NULL;
我用也检查了,返回TRUE
BOOL isexis=FALSE;
CFileFind find;
if (find.FindFile(file))
isexis=TRUE;
find.Close();
m_bmp.DeleteObject();
/////////载入图片
HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
file, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);奇怪,file文件明明存在,但返回hbmp =NULL;
我用也检查了,返回TRUE
BOOL isexis=FALSE;
CFileFind find;
if (find.FindFile(file))
isexis=TRUE;
find.Close();
而如果第一个参数不为空,则函数会尝试从第一个参数中的模块句柄查找资源为第二个参数的资源文件,一般LR_LOADFROMFILE会被忽略
LR_DEFAULTSIZE | LR_LOADFROMFILE);路径为相对路径,在该程序运行路径下_T("Logo.bmp")
http://blog.csdn.net/smallfishff/archive/2008/07/29/2731841.aspx
if( m_bmp.m_hObject != NULL )//判断
m_bmp.DeleteObject();
/////////载入图片 HBITMAP hbmp = (HBITMAP)::LoadImage(NULL,
file, IMAGE_BITMAP, 0, 0,LR_DEFAULTSIZE| LR_LOADFROMFILE);
if( hbmp == NULL )
return ;
///////////////////////该断程序用来取得加载的BMP的信息////////////////////////
m_bmp.Attach( hbmp );
DIBSECTION ds;
BITMAPINFOHEADER &bminfo = ds.dsBmih;
m_bmp.GetObject( sizeof(ds), &ds );
int cx=bminfo.biWidth; //得到图c像宽度
int cy=bminfo.biHeight; //得到图像高度IDC_STATICBMP
CRect rect;
GetDlgItem(ITEMID)->GetWindowRect(&rect);
ScreenToClient(&rect);
GetDlgItem(ITEMID)->MoveWindow(rect.left,rect.top,cx,cy,TRUE);//调整大小
((CStatic *)GetDlgItem(ITEMID))->SetBitmap(hbmp);目录,代码就是这样,我试了24位的位图,都可以显示,就256的灰度图不行,
但这个灰度图,其他软件都可以打开的,有没有其他显示的方法呢?
如果不是那是图片格式问题?换一张考到同路径下改成LOGO.bmp如果还不行肯定是格式问题
但就是返回的值0
关注中…………
用画图板另存为即可