我很难找到如何将.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设置为窗口中的背景。
感谢
答案 0 :(得分:1)
您在LoadBitmap
的通话和CreatePatternBrush
的通话中未执行任何错误检查。很可能其中一个调用失败,因此hbrBackground
设置为NULL
,这会产生白色背景。
您的下一步是进行一些调试以确定哪个调用失败。很可能是您作为资源链接的位图文件使用LoadBitmap
不支持的格式。或者位图文件可能以某种方式未被链接。但只要您实际设法创建位图然后刷子,系统就会使用该画笔绘制背景。