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 不错!