使用 LoadIcon 获取现代系统图标

Jab*_*cky 4 c windows winapi icons

我用于LoadIcon加载系统图标,例如“注意”标志。这工作正常,但这给了我旧的(我认为)Windows 7 外观的图标。

我的程序在 Windows 10 上运行。

代码:

hicon = LoadIcon(NULL, IDI_EXCLAMATION);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法让图标焕然一新?

另一方面MessageBoxMB_ICONEXCLAMATION标志显示新的图标。

RbM*_*bMm 8

我看到它MessageBoxW使用LoadIconWithScaleDown加载图标的功能而不是LoadImageLoadIcon。使用标准图标 ID(从 0x7f00 ( ) 开始,此函数实际上从imageres.dllIDI_APPLICATION..IDI_SHIELD加载图像(同时从user32.dll加载它们)。LoadImage

  • @Jabberwocky - https://i.imgur.com/6GxdfFK.png 这就是 `LoadIconWithScaleDown` 将标准图标重定向到 *imageres.dll* - `IDI_EXCLAMATION` - 0x7F03 从 *imageres.dll* 重定向到 0x54 的方式。奇怪的是 `LoadImage` 没有做同样的事情,并且没有记录 (2认同)