Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Win32:更改程序图标_C++_Visual Studio 2010_Resources - Fatal编程技术网

C++ Win32:更改程序图标

C++ Win32:更改程序图标,c++,visual-studio-2010,resources,C++,Visual Studio 2010,Resources,我最初认为IDI_ICON1非常适合我的课程: wndclass.hIcon = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON1)); 该图标随后出现在“我的主窗口”和“Windows资源管理器”中的.exe文件的标题菜单的左上角 我决定我更喜欢IDI_ICON2,所以我改变了: wndclass.hIcon = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESO

我最初认为IDI_ICON1非常适合我的课程:

wndclass.hIcon         = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON1));
该图标随后出现在“我的主窗口”和“Windows资源管理器”中的.exe文件的标题菜单的左上角

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

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

现在icon2显示在标题菜单的左上角,但Windows资源管理器中的图标仍显示为icon1。我遗漏了什么?

资源管理器将获取可执行文件中的第一个图标。这将是id最低的一个。请尝试管理您的资源,以便将IDI_ICON2定义为比IDI_ICON1更低的整数。

这可能是由于缓存造成的。尝试移动到其他文件夹或重命名它。否则尝试重新启动。我刚刚重新启动并重建了应用程序,但它仍然显示icon1。我还将程序复制到另一个文件夹中,但仍然是icon1。window类的这个字段是Win32中唯一处理程序图标的区域吗?那么我猜我猜错了。。。XDIt可以是IconCache.db。。。关闭explorer.exe,删除文件,然后重新启动。看起来您是正确的。我将ID替换为图标,icon1似乎是在资源管理器中显示的图标,而与window类中设置的图标无关。谢谢您的建议。@user974967:我只是想澄清窗口类与可执行文件及其资源无关。使用资源编译器编译.rc文件,然后与可执行文件链接。这是正确的吗?代码中唯一处理图标的区域(据我所知)是窗口类设置。但是,我想这仅仅决定了标题栏中显示的图标。另外,你知道如何确定删除、复制/替换或“预览”中显示的图标吗?如果在VS中有一种方法可以做到这一点,我宁愿不去处理.rc文件。