-1

如何使用 Visual C++ 2008 Express 做到这一点?

图片必须是可执行文件。

我发现我可以使用这些行修改无边框窗口的背景:

WNDCLASSEX wcx;
/*fill up other wcx members*/
wcx.hbrBackground=CreatePatternBrush((HBITMAP) LoadImage(0,_T("background.bmp"),
                                 IMAGE_BITMAP,0,0,
                                 LR_CREATEDIBSECTION|LR_LOADFROMFILE));

或者

WNDCLASSEX wcx;
/*fill up other wcx members*/
wcx.hbrBackground=CreatePatternBrush((HBITMAP) LoadImage(GetModuleHandle(0),
                                  MAKEINTRESOURCE(ID_BACK_BMP),
                                 IMAGE_BITMAP,0,0,
                                 LR_CREATEDIBSECTION);

但我有一个问题:

第一个示例用于从现有文件中获取图片。第二个使用资源。但是我找不到如何添加资源的选项(我认为这对于本机项目来说是不可能的)!有什么解决方法吗?

请帮忙!

PS。对不起英语不好!

4

2 回答 2

0

您不需要资源编辑器即可将资源编译为可执行映像。资源编辑器只是资源脚本文件 (.rc) 的图形编辑器。资源脚本文件可以在任何文本编辑器中创作。文件格式记录在 MSDN(关于资源文件)中。

要添加位图图像资源,您必须在资源脚本中添加BITMAP资源定义语句并在头文件中创建唯一的资源 ID(位图的资源 ID 必须在0 到 32767 的范围内):

资源.h:

#define IDB_BACK_BMP 1

我的应用程序.rc:

#include "resource.h"
IDB_BACK_BMP BITMAP "background.bmp"

假设您的项目已正确设置为为资源脚本文件调用资源编译器,您可以使用以下命令从可执行图像加载位图图像:

HBITMAP hBM = (HBITMAP)LoadImage(GetModuleHandle(NULL),
                                 MAKEINTRESOURCE(IDB_BACK_BMP),
                                 IMAGE_BITMAP,
                                 0, 0,
                                 LR_DEFAULTCOLOR);

LR_CREATEDIBSECTION请注意,除非要将图像发送到打印机,否则无需指定标志。对于渲染到显示设备上下文,依赖于设备的位图就足够了。

于 2013-10-27T18:07:26.050 回答
0

Visual Studio 的快速版本不包括资源编辑器。但是您可以使用 3rd 方资源编辑器:

在 Visual Studio 2010 Express 中创建“.rc”文件

于 2013-10-27T14:05:49.437 回答