修改MFC的图标

1. 修改主程序框架左上角图标

    1.1 不通过代码暴力修改

对于MFC框架应用程序我们可以不写一行代码把那个默认的图标换掉。找一张ICO图标,替换programname/res/programname.ico文件,这时候程序运行后得到的图标可能还是原来MFC的默认图标,这种情况只要把工程目录下的Debug和Release文件删除掉,重新编译生成就能得到更换图标后的程序。或者直接RebuildAll,再运行。

当然,在工程里操作也没有问题,在工作区的resorce页中的Icon中把ID为IDR_MAIN的图标资源删除,再导入自己制作的图标资源,把资源ID改为IDR_MAIN就OK。(参考)

    1.2 通过代码非暴力修改

更改IDR_MainFrm指向的ico文件, 该图标有两种格式,32×32和16×16,这两种格式都要改,还可以在主框架的OnCreate函数里指定使用哪个图标:

HICON m_hIcon;


在MainFrm的OnCreate()里

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

若更改应用程序的图标,先引入该图标资源,在Resource.h文件中修改该资源的ID值,必须使该资源号在ICO资源中最小,否则MFC将使用ICO资源号最小的图标

2.修改主程序图标

    更改应用程序的图标,先引入该图标资源,在Resource.h文件中修改该资源的ID值,必须使该资源号在ICO资源中最小,否则MFC将使用ICO资源号最小的图标。(参考)

方法一:
    要更改图标,在resource.h中打开之后可以看到各个资源的ID值,一般mfc自动生成的IDR_MAINFRAME是128,自己添加的会大于 128,顺序后延,编译时默认将ID最小的作为exe的图标,所以只要我们将其改之就可以了,还是上面的对话框,将IDI_ICON1改为128,将 IDR_MAINFRAME改为其他的大一点的数不能太大了,因为可能会有其他用处,然后重新rebuild,这时就可以看到exe图标变成了自己的 IDI_ICON1的图标了。
方法二:
1、在程序res文件夹下,删除MFC图标文件,加入自己的图标文件;

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

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

(2)完成后在资源视图中可能发现还是原来的MFC图标,但编译后exe文件的图标已经变成自己的了。
方法三:
    在.rc文件中,可以修改默认图标路径来修改生成EXE文件图标。

IDR_MAINFRAME           ICON                    "res\\Test.ico"
//更改后变成
IDR_MAINFRAME           ICON                    "res\\Test1.ico"

(参考)

posted @ 2012-11-29 11:17  StephenHugh  阅读(655)  评论(0编辑  收藏  举报