2011-10-05 23 views
3

我原本决定IDI_ICON1将是一个非常适合我的程序:的Win32:更改程序图标

wndclass.hIcon   = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON1)); 

中的图标出现在标题菜单的左上角为我的主窗口并提供。 exe文件在Windows资源管理器中。

我决定我喜欢IDI_ICON2更好,所以我改变:

wndclass.hIcon   = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON2)); 

现在ICON2出现在标题菜单的左上角,但在Windows资源管理器的图标仍显示为ICON1。我错过了什么?

+3

这可能是由于缓存。尝试移动到其他文件夹或重命名它。否则请尝试重新启动。 – Mysticial

+0

我刚刚重新启动并重新构建应用程序,但仍显示icon1。我还将该程序复制到另一个文件夹中,并仍然是icon1。这个窗口类的字段是Win32中唯一处理程序图标的区域吗? – user974967

+0

然后我想我猜对了...... XD – Mysticial

回答

5

Explorer在您的可执行文件中占用第一个图标。那将是ID最低的那个。尝试管理资源,以便将IDI_ICON2定义为比IDI_ICON1更低的整数。

+0

看来你是对的。我交换了图标的ID,并且icon1似乎是在资源管理器中显示的图标,而不管窗口类中设置的图标如何。感谢您的建议。 – user974967

+0

@ user974967:只是想澄清一下,窗口类与可执行文件及其资源无关。 –

+0

.rc文件使用资源编译器进行编译,然后与可执行文件链接。它是否正确?代码中处理图标(我知道)的唯一区域就是窗口类的设置。但是,我想这只是确定标题栏中显示的图标。 – user974967