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

win32加载位图的有关问题

2013-01-23 
win32加载位图的问题我用的是vs2008,这个编译完了之后只显示一个空白对话框。。。以下是WM_PAINT部分的代码ca

win32加载位图的问题
我用的是vs2008,这个编译完了之后只显示一个空白对话框。。。
以下是WM_PAINT部分的代码

case WM_PAINT:{
HDC hdcb;
HBITMAP hbmp;
BITMAP bmp;

hdc = BeginPaint(hWnd, &ps);
hdcb = CreateCompatibleDC(hdc);
hbmp = (HBITMAP)LoadImage(NULL,_T("1.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hbmp,sizeof(BITMAP),&bmp);
SelectObject(hdcb,hbmp);
BitBlt(hdc,10,10,bmp.bmWidth,bmp.bmHeight,hdcb,0,0,SRCCOPY);

DeleteDC(hdcb);
DeleteObject(hbmp);

//TextOut(hdc,0,0,good,_tcslen(good));
EndPaint(hWnd, &ps);
  }
break;


下边的那个textout我测试用的,可以正常显示good字符串里的helloworld。
网上有说是路径的问题,但是改了之后没有用
希望各位帮忙看看。
[解决办法]
 hbmp = (HBITMAP)LoadImage(NULL,_T("d:\\mydir\\1.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
//请判断hbmp的值。

[解决办法]
hbmp = (HBITMAP)LoadImage(NULL,_T("1.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
在这里打断点看看hbmp是否为NULL,另外,这位图的加载可以放到WM_CREATE中去。不不然每次得绘时都要加载文件对效率是个比较大的负担。

断点调试可以参考《图解如何在VC6,VS2008中设置程序条件断点》
http://blog.csdn.net/morewindows/article/details/6704796
[解决办法]
ls 不错!  

热点排行