【问题标题】:Getting modern system icons with LoadIcon使用 LoadIcon 获取现代系统图标
【发布时间】:2020-03-27 14:25:22
【问题描述】:

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

我的程序在 Windows 10 上运行。

代码:

hicon = LoadIcon(NULL, IDI_EXCLAMATION);

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

另一方面,带有MB_ICONEXCLAMATION 标志的MessageBox 显示新图标。

【问题讨论】:

  • 你试过 LoadImage(..., IMAGE_ICON, ...) 吗?
  • @SimonMourier 不,我也不知道怎么做。
  • 你是如何学习的?您阅读了文档。
  • @DavidHeffernan 我已经阅读了LoadImage 的文档,但也许我并没有完全理解。是关于 OEM 图像吗?
  • 好的 - LoadIconWithScaleDown(0, IDI_EXCLAMATION, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), &hi); 做任务

标签: c windows winapi icons


【解决方案1】:

我看到MessageBoxW 使用LoadIconWithScaleDown 函数来加载图标,而不是LoadImageLoadIcon。使用标准图标 ID(从 0x7f00 (IDI_APPLICATION..IDI_SHIELD) 开始,此函数实际上从 imageres.dll 加载图像(而 LoadImageuser32.dll 加载它们)。 p>

【讨论】:

  • 最快,点赞+接受!!我刚刚想出了如何使用LoadIconWithScaleDown!谢谢!
  • @Jabberwocky - i.imgur.com/6GxdfFK.png 这就是 LoadIconWithScaleDown 将标准图标重定向到 imageres.dll - IDI_EXCLAMATION - 0x7F03 从 imageres 重定向到 0x54 的方式。 dll.奇怪的是 LoadImage 不这样做,这没有记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
相关资源
最近更新 更多