gpt4 book ai didi

c++ - 将 HICON 转换为 unsigned long

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:30 25 4
gpt4 key购买 nike

我正在尝试从系统中获取图标。通过使用 SHGetFileInfo 我得到了 HICON,

我用下面的代码测试了这个 HICON:

SHFILEINFO info;    //For getting information about the file
if (::SHGetFileInfo(ucPath.GrabTString(), 0,&info, sizeof(info), SHGFI_ICON | SHGFI_SMALLICON | SHGFI_SHELLICONSIZE) != NULL)
{
//Control view of the
if (iconView != NULL){
HDC hDC = GetDC(NULL); //Get the screen DC
DrawIconEx(hDC, 300, 200, info.hIcon, 0, 0, 0, NULL, DI_NORMAL); //Draw icon on 300, 200 location
ReleaseDC(NULL, hDC);
//following line is not working
iconView->SetRsrcID((unsigned long) info.hIcon);
}
::DestroyIcon(info.hIcon);
}

在位置 (300, 200) 的屏幕上显示图标,我想将此图标设置为 TreeView ,为此我需要资源 ID,如果有人知道,请提出建议,如何将此句柄转换为无符号长整型。

谢谢,普拉文马奇

最佳答案

资源 ID 是您在可执行文件中拥有的资源的标识符。您将此标识符与 MAKEINTRESOURCE 一起用于需要资源标识符的函数。

对于 TreeView ,您使用 TreeView_SetImageList,然后每个项目都获得一个相对于此列表的索引。

因此,您需要使用要使用的图标构建一个图像列表,将其传递给 TreeView ,然后为每个项目使用适当的索引。

要创建一个操作图像列表,您可以使用 ImageList_Create & ImageList_AddIcon 等。

现在是 1990 年。:)

关于c++ - 将 HICON 转换为 unsigned long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com