vs2008平台下采用picture control控件无法显示图片
运行结束后,控件上没有显示要加载的图片,代码如下:
//imagepath:"e:\\tempp\\37132819.bmp" 该图片存在
HBITMAP hbmp=(HBITMAP)::LoadImage(NULL,CA2T(imagpath),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
//HBITMAP hbmp=(HBITMAP)::LoadImage(NULL,L"e:\\tempp\\37132819.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
DWORD k=GetLastError();
FILE *err = fopen("e:\\tempp\\err.txt","w");
fprintf(err,"%d",k);//k的值为0 加载成功
fclose(err);
CStatic * cs =(CStatic *)GetDlgItem(IDC_STATIC);//picture control控件ID:IDC_STATIC
if(cs == NULL){
MessageBox(L"GetDlgItem失败",L"ZNAPI",MB_OK);
}
//cs->ModifyStyle(0xF,SS_BITMAP);
cs->SetBitmap(hbmp);
谢了
picture control
loadImage
setBitmap
------解决方案--------------------bmpHMap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), curPath,
IMAGE_BITMAP, 256, 256, LR_CREATEDIBSECTION
------解决方案--------------------
LR_LOADFROMFILE);
if (bmpHMap==NULL)
{
MessageBox(L"读取图片失败!");
return;
}
m_BmpFile.SetBitmap(bmpHMap);
DeleteObject(bmpHMap);
这是我在做的一个东西里面的代码,可以成功显示~
另外提醒几个我遇到的问题.
1. picture control控件的type属性设置为Bitmap.
2. 你那个LoadImage函数的返回值是NULL吗?如果是的话,说明图片没有载入,可以检查一下文件路径,中英文字符设置什么的~
3. 最后记得要删除资源哦~DeleteObject
------解决方案--------------------IDC_STATIC 改成别的ID试试