当前位置: 首页 > 编程技术 > 正文

MFC修改默认图标

相信很多刚开始学习MFC的朋友和我一样,对于MFC默认的图标很不爽,MFC虽然很大程度的方便了我们的Win32编程,但是正是由于MFC的高度集成性,有时候我们想修改一些东西都很麻烦

对于MFC默认的ICO图标,个人认为不是很有个性,对于喜欢DIY的我而言,总是希望把它也DIY过,这里是我的一些基于源代码工程的修改方法

MFC默认的ICO图标:

MFC默认的ICO文件

下面是我总结的一些修改方法,大牛勿喷

正如我们所知,C++是面对对象的编程,面对对象的编程的核心就是类 Class了,

但我们建立一个基本对话框的时候,MFC已经为我们初始化了三个类,在这三个类中 有一个是关于类,也就是关于菜单的类,这个不重要

重要的是最后一个类,也就是C+工程名称+Dlg为名称的类,比如我的工程名称是CreateToolBarFromIcon,那么主类的名称就是CCreateToolBarFromIconDlg ,这个类包含了很多的对话框的初始化信息,当然也包含了默认图标的信息了

MFC默认的类成员的默认图标的变量

如上图所指的变量,MFC在建立时,都会有初始化一个类型为HICON,名称为m_hIcon的变量,这个变量就是用于接收默认ICO图标的信息的

双击上面的变量,我们来到了类的定义的代码的地方了,

可以在protected:下面看到如下代码

HICON m_hIcon;

// Generated message map functions
//{{AFX_MSG(CCreateToolBarFromIconDlg)

这里就说明了m_hIcon是保护成员变量,并且类型为HICON,这时我们鼠标左键将m_hIcon全部选中,然后点击右键->转到m_hIcon的参考 ,

将会来到如下代码

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

这里就初始化设定了默认ICO的信息了LoadIcon函数的参数IDR_MAINFRAME就是默认图标的ID了,

切换到资源视图(ResourceView)

选中Icon->单击鼠标右键->引入,

在打开的文件浏览中选择要引入的ico文件,这里需要说明的是,需要先将要用来替换的ico文件存放于工程目录下去的res文件夹中

在res文件夹中选中了ico文件后,在Icon下可以看到新增的Ico文件的ID,这里我的ID是IDI_ICON9 (视引入的资源的个数的不同而不同,这里只是个举例)

新插入的ICON的资源ID

那么只需要将上面的IDR_MAINFRAME替换成新的ID就可以了,替换后代码如下

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

保存工程 重新编译下源代码,运行程序就会发现图标已经变了

MFC的默认图标已经改变了

这里需要注意一点,如果用来替换的ico文件为只读文件的话可能会提示出错,这里将属性中的只读选项去掉重新编译一下就可以了

总的来说,只要全文搜索m_hIcon = AfxGetApp()->LoadIcon 将LoadIcon的参数修改成用来替换的ICON文件的ID就可以实现替换默认图标了

接下来是

替换EXE文件的图标

EXE文件的图标替换的方法有几种,

方法一,

在resource.h文件中可以看到各个资源的ID,一般MFC自动生成的默认图标的ID是128:

#define IDR_MAINFRAME                128

后面加入的ICON的资源的ID都是大于128的,但是MFC默认使用的最小的ID作为EXE文件的图标

那么方法一就是:
将默认的IDR_MAINFRAME的ID和你要修改成的ICON的资源ID对调,或者是将MFC自动生成的IDR_MAINFRAME资源定义那一行删除

比如我在前面引入和一个ICON,并且资源名称为:IDI_MAINICON(具体的名称是情况而定): 那么在resource.h中 ,将IDI_MANICON的资源ID改为128即可

方法二:

使用文本编辑器打开工程目录下的.rc文件,

查找,找到下面的语句:

IDR_MAINFRAME           ICON    DISCARDABLE     "res\\1.ico"

将后面的路径改为你的要修改为的ico文件的路径和名称,比如我要修改为res文件夹main.ico为exe文件图标,那么修改 res\\1.ico 为 res\\main.ico:

IDR_MAINFRAME           ICON    DISCARDABLE     "res\\main.ico"

重新编译后。你就可以看到exe图标发生变化了



本文固定链接: http://kuaile.in/archives/359 | 蒲公英的博客

该日志由 蒲公英 于2012年02月09日发表在 编程技术 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: MFC修改默认图标 | 蒲公英的博客
关键字:

MFC修改默认图标:等您坐沙发呢!

发表评论


You must enable javascript to see captcha here!

快捷键:Ctrl+Enter