通常情况下,应用程序任务栏按钮所属的图标与EXE文件中包含并显示的程序图标相同。现在,在我的应用程序中,我想动态更改此图标,意味着读取了一个配置,其中指定了一个(PNG)图像。现在,应用程序加载此图像,并将其设置为新的任务栏图标。
但是:如何完成最后一步?我如何在运行时设置任务栏中的图标(而不是托盘中的图标)?
谢谢!
通常情况下,应用程序任务栏按钮所属的图标与EXE文件中包含并显示的程序图标相同。现在,在我的应用程序中,我想动态更改此图标,意味着读取了一个配置,其中指定了一个(PNG)图像。现在,应用程序加载此图像,并将其设置为新的任务栏图标。
但是:如何完成最后一步?我如何在运行时设置任务栏中的图标(而不是托盘中的图标)?
谢谢!
向您的窗口发送WM_SETICON消息,在wParam
中传递大小(ICON_BIG
或ICON_SMALL
),并在lParam
中传递新图标的句柄。
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
SendMessage()
替换 PostMessage()
。而且你并不需要对 wParam
参数进行类型转换,只需要对 lParam
进行转换。SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
- Remy Lebeau