显示无边界图片并退出纯图片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。对不起英文不好!

Visual Studio的高级版本不包含资源编辑器。但是你可以使用第三方资源编辑器:

Creating a ".rc" file in Visual Studio 2010 Express

你并不需要一个资源编辑器来编译资源转化为可执行映像。资源编辑器仅仅是资源脚本文件(.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标志。为了渲染到显示设备上下文,设备相关位图就足够了。