【问题标题】:Show a picture without borders and exit pure c显示无边框图片并退出纯c
【发布时间】:2013-11-05 21:01:06
【问题描述】:

如何使用 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。抱歉英语不好!

【问题讨论】:

    标签: c image winapi visual-studio-2008 windows-xp-sp3


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      resource.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 标志。对于渲染到显示设备上下文,依赖于设备的位图就足够了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多