在C ++中,无论如何让用户选择应用程序的图标?例如,Winamp允许您从其首选项中的图标列表中选择要使用的图标。怎么做?
答案 0 :(得分:5)
您在资源管理器中看到了一个图标。这是可执行文件中的资源。你可以改变它,但我也不会建议你。如果修改了可执行文件,病毒扫描程序会感到紧张,而在Windows Vista中,甚至不允许您在Program Files文件夹中写入。
但可以更改任务栏或系统托盘中显示的图标。这实际上是应用程序窗口的图标,可以通过发送WM_SETICON消息进行设置。
还有捷径。它们也可以更改,在快捷方式中,您可以指定应使用哪个图标。
我发现discussion on changing icons有关于前两个选项的信息。
答案 1 :(得分:1)
对于基于MFC对话框的应用程序中的Visual Studio 2010
A. 在资源视图中,右键单击“图标”文件夹并添加图标。给它一个像IDI_MYICON的ID。保持原样或画出好看的东西。
B。转到OnInitDialog。添加以下两行代码:
HICON hMyIcon = LoadIcon( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_MYICON) );
SetIcon( hMyIcon, FALSE ); // FALSE == use as small icon
您可以在帮助中阅读有关这些功能的内容,以了解正在发生的事情。
这会将图标设置为sysmenu(topleft)和任务栏中的图标。但是,并非在所有情况下都会自动反映出来。例如。对于系统托盘图标,您需要在调用Shell_NotifyIcon()时再次显式指定图标。