2013-08-23 25 views
0

在我的.rc文件加载图片我已经添加一行:WINAPI LoadBitmap()不是从我的资源

IMG BITMAP "myIMG.bmp" //add to resources 

原型.cpp文件:

HBITMAP  Image; 

ShowWindow()我加载它在与记忆:

Image=LoadBitmap(hInstance,"IMG"); 

WM_CREATE:我上加载到屏幕上,并清除出来:

HDC GetDC (hdc);  
HDC newhdc = CreateCompatibleDC(hdc); 
SelectObject(newhdc,Image); 
BitBlt(hdc,30,70,491,302,newhdc,0,0,SRCCOPY); 
DeleteDC(newhdc); 
DeleteObject(Image); 
ReleaseDC(hwnd,hdc); 

感谢@BeneGal问题(这里成立),我创建了一个MB告诉如果IMG未加载:

if(Image == NULL) { 
MessageBox(NULL, "NO IMAGE LOADED!", "Error!", MB_ICONEXCLAMATION | MB_OK); 
} 

当我粘贴上面的代码之后ShowWindow()的MB不要” t出现,当我将它粘贴在WM_CREATE:上时,它就会出现。不知道为什么。

编辑:嗯,其实我忘了说这个图像没有出现在我的窗口,这是主要问题。

回答

1

在WM_CREATE中加载位图在WM_PAINT中使用它。通过SelectObject跟踪返回对象,并且不要删除HDC中仍然选中的对象。做那样的事情http://www.winprog.org/tutorial/bitmaps.html

+0

那么这就是诀窍:)谢谢。我也删除了:'HDC GetDC(hdc);''DeleteObject(Image);'ReleaseDC(hwnd,hdc);'并添加了'GetObject()'函数,以便我可以获得图像大小:) – NightKn8