MFC生成exe文件图标更改方法

创建或打开工程Icon(以下都以工程名为Icon为例)
  单击Workspace窗口的ResourceView标签,选中资源ID为IDR_MAINFRAME图标资源,然后按Delete键把它删除掉。注意:一定要把它删除才行。
  从Developer Studio的Insert菜单中选择Resource,然后选择Icon,新建(New)一个新的图标或导入(Import)一个已有的图标。
  把新图标的资源ID改为AFX_IDI_STD_MDIFRAME(如果是MDI应用程序)或改为AFX_IDI_STD_FRAME(如果是SDI应用程序)。AFX_IDI_STD_MDIFRAME和AFX_IDI_STD_FRAME这两个资源ID是MFC中预定义了的。编译并运行程序,可以发现主框架窗口的图标就是你指定的图标。


另一位网友总结的方法: 

VC6.0生成的exe文件图标是用Icon下几个图标中value值最小的,顺序为IDR_MAINFRAME、IDR_ICONTETYPE、新加的,所以想更改生成的exe文件图标,只要保证图标的value值是Icon下几个图标中最小的就可以了。

如果生成的exe文件不想用VC自带的MFC图标,可以进行如下操作:

方法一、最简单的方法

1、在程序res文件夹下,删除MFC图标文件,加入自己的图标文件;

2、在图标IDR_MAINFRAME的属性对话框中,修改File name路径为自己的图标文件。

注:(1)一定要先删除原文件,否则会把你的图标文件覆盖掉;

      (2)完成后在资源视图中可能发现还是原来的MFC图标,但编译后exe文件的图标已经变成自己的了。

方法二:

1、在资源视图Icon下加入想用的图标;

2、修改该图标的value值,把值改为Icon下几个图标中最小的:

(1)方法一:打开Header Files下的Resource.h,找到Icon下的图标,系统默认是从128开始的,

#define IDR_MAINFRAME              128

#define IDR_ICONTETYPE             129(单/多文档程序的文档图标)
#define IDI_ICON1                       130
#define IDI_ICON2                       131

可以修改全部的value值,也可以只修改想用的图标,只要保证value值是Icon下几个图标中最小的就可以;

(2)方法二:在图标的属性对话框中,在ID后面加上=value,比如IDI_ICON1=127,也要保证value值是Icon下几个图标中最小的。

方法三:

1、在资源视图中删除Icon下的IDR_MAINFRAME和IDR_ICONTETYPE;

2、加入想用的图标,可以改名为IDR_MAINFRAME,也可以不改;

3、如果不改名为IDR_MAINFRAME,则在程序中要修改相应的代码:

基于对话框的程序,在构造函数中有一句

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

记得把IDR_MAINFRAME改为你自己的图标名。

<think>好的,用户想在MFC项目中修改EXE文件图标。首先,我需要回忆一下相关的知识,并查看提供的引用资料。根据引用[1]、[2]、[3]、[4],修改图标方法主要有两种:调整资源ID或替换图标文件。 首先,用户可能已经知道MFC默认使用IDR_MAINFRAME作为图标,这个资源的ID通常是128。根据引用[1]和[3],EXE图标默认使用资源ID最小的那个图标。因此,要让自己的图标成为最小ID,可以修改资源头文件中的ID值。 用户可能需要逐步指导,所以应该分步骤说明。方法一是修改资源ID,将自定义图标的ID设为比IDR_MAINFRAME更小,比如改为128,而原来的IDR_MAINFRAME改为更大的数值。这需要编辑resource.h文件,调整ID值,然后重新生成解决方案。 另一种方法是替换图标文件,如引用[4]提到的,替换res文件夹中的图标,并确保其ID正确。可能需要注意图标文件的格式和尺寸是否符合要求,否则可能导致显示问题。 同时,需要注意用户可能遇到的常见问题,比如修改图标没变化,可能需要清理和重新生成项目,或者检查是否有多个图标资源ID冲突。此外,任务栏图标可能需要单独设置,引用[4]提到m_hIcon的设置,这可能影响窗口图标,而不仅仅是EXE文件本身。 需要确认用户是否了解资源编辑器的使用,或者是否需要指导使用Visual Studio的资源视图进行图标替换。此外,提醒用户备份原来的资源文件,避免误操作。 最后,生成相关问题需要考虑用户可能的后续疑问,比如其他资源ID的影响、图标不显示的解决办法,或者如何为不同分辨率提供图标等。</think>### 修改MFC应用程序EXE文件图标的步骤 #### 方法一:调整资源ID值 1. **打开资源头文件** 在项目中找到`resource.h`文件,定位到图标的资源ID定义。默认情况下,主框架图标`IDR_MAINFRAME`的值为$128$,其他用户添加的图标ID通常大于此值[^1][^3]。 2. **修改资源ID** - 将自定义图标的ID(例如`IDI_ICON1`)改为$128$ - 将原`IDR_MAINFRAME`的ID改为更大的数值(如$129$) ```cpp // 修改前 #define IDR_MAINFRAME 128 #define IDI_ICON1 130 // 修改后 #define IDR_MAINFRAME 129 #define IDI_ICON1 128 ``` 3. **重新生成项目** 执行**Rebuild Solution**强制重新编译资源文件,确保新图标生效[^1]。 --- #### 方法二:替换图标文件 1. **准备图标文件** 将自定义的`.ico`文件复制到项目的`res`文件夹中,并确保其包含多种分辨率(如$16\times16$、$32\times32$、$48\times48$)以兼容不同显示场景[^4]。 2. **更新资源引用** - 在资源视图(Resource View)中删除原`IDR_MAINFRAME`对应的图标 - 导入新图标并命名为`IDR_MAINFRAME`,保持其ID为$128$ - 若需保留原图标,可修改其ID为更大的数值(如$129$) 3. **同步代码引用** 在`CMainFrame::OnCreate()`中检查图标加载语句: ```cpp m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 确保与修改后的ID一致 ``` --- #### 验证与调试 - **清理中间文件**:删除`Debug`或`Release`文件夹中的临时文件 - **图标未更新**:检查资源ID是否最小,或尝试重启Visual Studio - **任务栏图标问题**:单独设置`m_hIcon`属性,引用[^4]指出需同步修改窗口图标句柄 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值