【发布时间】:2014-07-28 08:29:27
【问题描述】:
我很难找出如何将我的 .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 文件 add>bitmap>import...>x.bmp 我收到错误“无法加载文件”。为什么是这样?我只想将那个 x.bmp 设置为我窗口中的背景。
谢谢
【问题讨论】:
-
IDB_BITMAP1 指向什么?如果您双击 IDB_BITMAP1,它会显示位图吗?如果是这样,那你为什么要导入 x.bmp?在 MS Paint 中打开 x.bmp 并检查它是否是有效的 bmp。
-
是的,如果我双击它,它会显示我链接到它的 .bmp (x.bmp),但是当我运行程序时,背景只是纯白色。
-
不要将位图设置为背景画笔。处理
WM_ERASEBKGND消息并将位图绘制到提供的HDC上。 Drawing a Custom Window Background -
谢谢@RemyLebeau——感谢您的评论,我让它工作了,但我在大卫的建议中添加了错误检查。非常感谢你们!
标签: winapi visual-c++ bitmap