VC++ MFC程序更改图标问题

运行时的图标是自己改过来的,但是不运行时的图标是MFC的图标。怎么改过来?
运行时:

方法一:找一张ICO图标,替换programname/res/programname.ico文件,就可以啦,这时候运行后得到的图标可能还是原来MFC的默认图标,这时候你只要把工程目录下的Debug和Release文件删除掉,重新编译生成就能得到更换图标后的程序。或者直接RebuildAll,再运行。

如果在工程里操作也没有问题,在工作区的resorce页中的Icon中把ID为IDR_MAIN的图标资源删除,再导入自己制作的图标资源,把资源ID改为IDR_MAIN就OK啦。
方法二:
上面这个的工作十分简单,但是如果要在程序中写代码改变应用程序的图标,比如有时候要在程序中动态改变程序的标题栏、任务栏图标或是托盘的图标,那就要花点功夫了。其实也不是很难,主要用几个函数搞定,如果是MFC主要就是 LoadIcon和 SetIcon。
比如在OnInitDialog或是OnCreate中加入:
AfxGetApp()->LoadIcon(IDI_ICON1);
SetIcon(ico,true);
SetIcon(ico,false);
另外你可能要问,MFC程序默认是怎么加载它的图标的,在主对话框的构造函数中有这样一句:
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAIN);
这就是加载默认图标的,而在OnInitDialog初始化函数中有这两行代码:
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
这两行代码就将应用程序的图标设置好了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-08
告诉你一个最简单的方法,微软会自动帮你生成一个图标吧,先不要管它,然后插入一个你自己的图标,然后把微软生成的图标的名字复制下来,再删除它,将你的图标设置成微软自定义图标的名字,然后查看下32*32 与16*16两个图标是不是都是你自己的。然后编译。这时候标题栏上的图标就是你的图标了,再回到debug下,你的图标也发生改变了。此方法绝对可行,弄不出来,就是个人智商问题了。本回答被提问者采纳
第2个回答  2009-08-08
在资源编辑器里
有一个app.ico(好像)
你把它替换了就行了

用VC++ MFC模板写的程序的EXE文件的图标怎么改
从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是MF...

用VC++编出来的应用程序怎么更改图标
MFC AppWizard(exe)的图标放在资源视图下的Icon中 其资源标识符为(IDR_MAINFRAME)。用图行编辑器打开你要更换的图标 修改成为32×32,24位的BMP图标 然后直接复盖掉对应的Icon中的图标 使用复制和粘帖就可以啦 然后运行程序 窗口左上角那个图标就被更改了。。。

我用VC的MFC进行编程,想改变程序的显示图标,但是我改了ICON的图像之后...
在OnCreate()虚函数中,调用SetClassLong()设置图标

如何修改VC++6.0生成的EXE文件的默认图标?
MFC程序在你的程序工程有3个文件夹,debug,release,res替换res里的xxxx.ico图标,删除debug和release文件夹 重新编译程序

如何修改VC++6.0生成的EXE图标
一、自己找一个.ico的文件,COPY到res文件夹里,然后把它名字改成原来MFC自带图标的名字(在这之前你需要把自带图标删掉或者改成其他名字),二、在VC左面的资源视图里,有个ICON项,直接打开IDR_MAINFRAME文件,自己画。。

用vc++6编程,怎么给编的程序加图标?
导入”,全部保存。最后是编译,然后选择“编译”-“批构件”(英文版是Build-Batch Build),工程结构中的两个选项均打上勾,然后点“全部重建”(英文版是Rebulild All)。现在已经生成带自行设计的图标的可执行程序了,在“Release”文件夹中的.exe文件就是我们要的最终能脱离VC的程序。

VC++6.0编程时,怎样用自己设计的软件界面?
可以深入学习MFC编程(相对形象化)或者Windows GDI(相对更底层,直接使用Windows接口)。如果想做出现代风格的界面(例如360安全卫士主界面或者Office 2007以上版本的界面),就请安装更新版本的VC++ , 例如包含在Visual Studio 2010 中的 VC++2010,使用Ribbon界面。祝你学习愉快^_^ ...

如何用VC++5在菜单中增加位图或图标
MFC的CMenu类有一个成员函数SetMenuItemBitmaps,可以用于往菜单中增加图标。具体方法如下:在应用程序的资源文件中添加想要增加的位图,并将其ID命名为IDB_OPEN1和IDB_OPEN2;---在应用程序的视图类中添加CBitmap类的对象,不妨取名为bm_open1和bm_open2。在视图类的构造函数中添加以下代码:bm_open1....

如何将三个Vc++的MFC程序合并成一个
将B文件夹中的文件复制粘贴到A文件夹中,然后再在A程序的解决方案 资源管理器中找到头文件与源文件两个文件夹式样的图标 右键->添加->现有项 找到 你要转移的文件即可。Step5:最后调试程序 转移过来的B中文件会有一些包涵的头文件需要改成A程序中的 这些问题比较容易解决,各位自己更改一下即可 ...

如何利用VC++6.0中的MFC创建如图所示的界面
图上除了菜单,没发现有什么界面。MFC标准SDI单文档\/MDI多文档程序的菜单,在资源编辑器中编辑即可,看你图中的示例,也是单文档类型的程序。

相似回答