Win32:Does ImageList_ReplaceIcon 因不正确 ImageList_Create 而失败
Win32:Does ImageList_ReplaceIcon failed with unproper ImageList_Create
正如标题所说,我正在尝试编写一个简单的 window 程序,但是当我尝试更改我的 TreeView 的图标时,它出错了。我很确定我的图标已加载,因为我这样做了:
HICON hIcon;
//hinst is my global variable
hIcon = LoadIcon(hinst,(char*)IDI_ICON_MAIN);
if (hIcon == NULL)
{
MessageBox(NULL, "LoadIcon failed", "error", MB_OK);
}
它工作正常然后我使用 ImageList_ReplaceIcon()
:
if (ImageList_ReplaceIcon(iml, 3, hIcon) == -1)
{
MessageBox(NULL, "replace icon failed", "error", MB_OK);
}
TreeView_SetImageList(hwndTV, iml, TVSIL_STATE);
首先我想,可能是因为我在ImageList_Create()
中输入了错误的ILC_COLOR
,然后我重新检查了我的图标位,然后重新设置了参数,但仍然没有用。
任何人都可以告诉我一些问题的线索吗?我已经检查过 Google 并多次阅读文档,也许我错过了什么?
更新 [2022/05/31]
这是我的 TreeView:
我正在尝试将我的图标更改为红色圆圈。
我现在可以看到我的图标了,谢谢。感谢那些给我建议的人。
ReplaceIcon() 只能在我已经添加了图标的情况下使用。如果其中没有图标,那么我唯一可以使用的条件是将索引设置为 -1,以便 ReplaceIcon() 可以为我添加图标。
正如标题所说,我正在尝试编写一个简单的 window 程序,但是当我尝试更改我的 TreeView 的图标时,它出错了。我很确定我的图标已加载,因为我这样做了:
HICON hIcon;
//hinst is my global variable
hIcon = LoadIcon(hinst,(char*)IDI_ICON_MAIN);
if (hIcon == NULL)
{
MessageBox(NULL, "LoadIcon failed", "error", MB_OK);
}
它工作正常然后我使用 ImageList_ReplaceIcon()
:
if (ImageList_ReplaceIcon(iml, 3, hIcon) == -1)
{
MessageBox(NULL, "replace icon failed", "error", MB_OK);
}
TreeView_SetImageList(hwndTV, iml, TVSIL_STATE);
首先我想,可能是因为我在ImageList_Create()
中输入了错误的ILC_COLOR
,然后我重新检查了我的图标位,然后重新设置了参数,但仍然没有用。
任何人都可以告诉我一些问题的线索吗?我已经检查过 Google 并多次阅读文档,也许我错过了什么?
更新 [2022/05/31]
这是我的 TreeView:
我正在尝试将我的图标更改为红色圆圈。
我现在可以看到我的图标了,谢谢。感谢那些给我建议的人。
ReplaceIcon() 只能在我已经添加了图标的情况下使用。如果其中没有图标,那么我唯一可以使用的条件是将索引设置为 -1,以便 ReplaceIcon() 可以为我添加图标。