【问题标题】:create image list from resource file - win32从资源文件创建图像列表 - win32
【发布时间】:2013-05-13 13:48:34
【问题描述】:

我在 .rc 文件中有几张图片,例如:

IDB_COPY BITMAP "copy.bmp"
IDB_CUT BITMAP "cut.bmp"
IDB_PASTE BITMAP "paste.bmp"

我想将它们全部加载到 ImageList 中。
如果我会写

HIMAGELIST hImageList = ImageList_LoadBitmap(hInstance, MAKEINTRESOURCEW(IDB_COPY), 16, 0, RGB(255, 0, 255));

它只加载第一个位图,我如何加载它们?

【问题讨论】:

    标签: winapi bitmap imagelist


    【解决方案1】:

    这段代码成功了:

    HIMAGELIST hImageList = ImageList_LoadBitmap(hInstance, MAKEINTRESOURCEW(IDB_CUT), 16, 0, RGB(255, 0, 255));
    
    ImageList_Add(hImageList, LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_COPY)), NULL);
    ImageList_Add(hImageList, LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_PASTE)), NULL);
    

    【讨论】:

      【解决方案2】:

      如果你使用的是 C++11 或更高版本,我建议使用std::map

      map<string,HBITMAP> hbm; // #include <map>
      hbm["CUT"]=LoadBitmap(hInstance,MAKEINTRESOURCEW(IDB_CUT));
      // ...
      // or
      map<int,HBITMAP> hbm1;
      hbm1[0]=LoadBitmap(hInstance,MAKEINTRESOURCEW(IDB_CUT));
      //...
      

      我认为它更灵活方便,因为也可以接受不同尺寸的图像。

      【讨论】:

        猜你喜欢
        • 2021-08-10
        • 1970-01-01
        • 2012-08-01
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多