我想在 CImage 对象中加载.exe的图标,以便轻松显示并将其保存在数据库中。我的问题是我有 HICON ,我似乎只能将 HBITMAP 加载/附加到 CImage 对象。
SHFILEINFO sfi;
Cimage icon;
DWORD ret = SHGetFileInfo(path, 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SMALLICON | SHGFI_DISPLAYNAME);
if(ret != 0) {
// copy info
hIcon = sfi.hIcon;
if(hIcon != lastHIcon && hIcon != 0) {
// This does not work, needs a HBITMAP instead of a HICON
icon.Attach(hIcon);
}
}
有没有简单的方法可以做到这一点,还是我需要先将HICON渲染到DC?在我看来,应该有一个解决方案,不要求我成为GDI专家。