如何为 Win32 应用程序设置任务栏图标?

Posted

技术标签:

【中文标题】如何为 Win32 应用程序设置任务栏图标?【英文标题】:How do I set a taskbar icon for Win32 application? 【发布时间】:2019-04-19 20:05:45 【问题描述】:

我正在为 Windows 10 创建一个简单的 Win32 GUI 应用程序。我想设置一个图标,当它打开时会出现在任务栏中。我已经在资源文件中定义了一个图标,但它只出现在文件资源管理器中的 exe 文件旁边。当我打开应用程序时,它仍然只显示默认图标。在 Windows 编程方面,我是个大菜鸟,所以如果我遗漏了一些明显的东西,我很抱歉。

感谢任何帮助。

我的 resources.rc 文件:

#include "winuser.h"
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "TDAssist.exe.manifest"
id ICON "icon.ico"

【问题讨论】:

谷歌“重置外壳图标缓存”以获得成功。 icon.ico 文件中包含哪些尺寸/分辨率的图标?至少应该有一个 32x32 的 32 位。 【参考方案1】:

任务栏使用窗口中的图标,而不是资源中的第一个图标。

使用LoadImage(GetModuleHandle(0),..., LR_SHARED) 获取HICON 并在注册窗口类或发送WM_SETICON 时将其分配给窗口。

任务栏和 Alt+Tab 对话框在某些版本中可能会显示 .exe 图标,但这取决于窗口样式和其他未记录的细节。

【讨论】:

以上是关于如何为 Win32 应用程序设置任务栏图标?的主要内容,如果未能解决你的问题,请参考以下文章

win10任务栏uwp应用没有图标,怎么解决

win10任务栏图标大小设置了不生效?

window8底部任务栏不显示怎么办

电脑任务栏怎么隐藏

如何为 Windows 7 编写进度条以在任务栏上进行自我更新?

WIN7 清除任务栏图标缓存