繁体   English   中英

如何在后台Win32中显示位图图像

[英]How to display bitmap image in background Win32

我很难找出如何将我的.bmp图像加载到背景中。

这是我的代码:

wc.cbSize        = sizeof(WNDCLASSEX);
wc.style         = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc   = WndProc; 
wc.cbClsExtra    = 0;
wc.cbWndExtra    = 0;
wc.hInstance     = hInstance;
wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); 
wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = CreatePatternBrush(LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1)));
wc.lpszMenuName  = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

虽然问题不完全与代码有关。 我只是有一个文件x.bmp,并且我在resource.rc文件中定义了IDB_BITMAP1,并在resource.h中包含了一个标识符-但是当我运行它时,我只会得到一个白屏。 这里的问题是,如何将我的.bmp图像上传到.rc文件? 我正在使用MSVS20124。 当我右键单击.rc文件时,添加>位图>导入...> x.bmp,我得到一个错误“无法加载文件”。 为什么是这样? 我只想将x.bmp设置为窗口中的背景。

谢谢

在对LoadBitmap的调用和对CreatePatternBrush的调用中,您没有执行任何错误检查。 这些调用很可能失败了,因此hbrBackground设置为NULL ,导致白色背景。

下一步是进行一些调试,以确定哪个调用失败。 很有可能您链接为资源的位图文件使用LoadBitmap不支持的格式。 或者,也许位图文件不被链接。 但是,只要您实际上设法先创建一个位图,然后再创建画笔,系统将使用该画笔绘制背景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM