【问题标题】:Creating an icon from an array [duplicate]从数组创建图标[重复]
【发布时间】:2020-04-29 14:14:16
【问题描述】:

我试图从数组中加载一个图标但没有成功。

我有一个包含原始图标 (.ico) 的数组,我想加载它。问题是函数CreateIconFromResourceEx 返回NULL。

关于图标我在一个数组中保存了一个 .ico 文件。

这是我的代码:

 HICON icon = NULL;

icon = CreateIconFromResourceEx(tray->icon, (DWORD)tray->fsize, TRUE, 0x30000, 32, 32, LR_DEFAULTCOLOR | LR_DEFAULTSIZE);

if (nid.hIcon) {
    DestroyIcon(nid.hIcon);
}

nid.hIcon = icon;
Shell_NotifyIcon(NIM_MODIFY, &nid);

托盘在哪里:

struct tray {
unsigned char *icon;
int fsize;
struct tray_menu *menu;};

我做错了什么?

【问题讨论】:

标签: c++ visual-studio winapi visual-c++


【解决方案1】:

发现问题..我需要计算 IMAGEDATA 的偏移量

offset = LookupIconIdFromDirectoryEx(tray->icon, TRUE, 32, 64, LR_DEFAULTCOLOR);

比

if (offset != 0) {
    icon = CreateIconFromResourceEx(tray->icon + offset, (DWORD)tray->fsize, TRUE, 0x30000, 32, 64, LR_DEFAULTCOLOR);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2019-02-15
    • 2015-08-21
    • 2012-09-22
    • 2021-03-09
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多