显示无边界图片并退出纯图片c
问题描述:
这是如何使用Visual C++ 2008 Express完成的?显示无边界图片并退出纯图片c
图片必须可执行。
我发现我可以用这些行修改边界的窗口的背景:
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);
,但我有一个问题:
第一个例子是用于从获得的图片现有文件。 第二个使用resorces。但我找不到如何添加资源的选项(我认为对于本机项目来说这是不可能的)! 有什么解决方法吗?
请帮忙!
PS。对不起英文不好!
答
你并不需要一个资源编辑器来编译资源转化为可执行映像。资源编辑器仅仅是资源脚本文件(.rc)的图形编辑器。资源脚本文件可以在任何文本编辑器中创作。文件格式记录在MSDN(About Resource Files)中。
要增加你的BITMAP
resource定义语句添加到您的资源脚本,并创建一个头文件中的独特资源ID(位图资源ID必须是range from 0 to 32767)的位图图像资源:
资源。 H:
#define IDB_BACK_BMP 1
MyApp.rc:
#include "resource.h"
IDB_BACK_BMP BITMAP "background.bmp"
假设您的项目已正确设置调用Resource Compiler资源脚本文件,您可以使用可执行映像加载位图图像:
HBITMAP hBM = (HBITMAP)LoadImage(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDB_BACK_BMP),
IMAGE_BITMAP,
0, 0,
LR_DEFAULTCOLOR);
注意你,除非你想将图像发送到打印机不需要指定LR_CREATEDIBSECTION
标志。为了渲染到显示设备上下文,设备相关位图就足够了。