MFC 界面左上角小图标怎么更改啊

时间:2022-08-27 20:00:53
左上角被我改的只剩小白框了,res里的那个我也改了,但是只是改了生成exe文件的图标,rs里的IDR_MAINFRAME我也改成我自已的图了,但是还是改不了左上角的图,现在左上角显示的是一个小白框,不是MFC那个品字型框.
有没有方法从BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)这里再改啊

17 个解决方案

#1


你ReBuild一下

#2


你把res文件夹里面的你项目的那个ico用你的文件替换掉(文件名取成一样的),然后把IDR_MAINFRAME删掉,再导入你的那个ico,并ID为IDR_MAINFRAME

#3


引用 1 楼 huangcheng90 的回复:
你ReBuild一下

mei yong

#4


引用 2 楼 king_hhuang 的回复:
你把res文件夹里面的你项目的那个ico用你的文件替换掉(文件名取成一样的),然后把IDR_MAINFRAME删掉,再导入你的那个ico,并ID为IDR_MAINFRAME

i did so

#5


exe文件的图标和里面左上角的图标不是一起改的吧

#6


该回复于2011-03-21 09:16:00被版主删除

#7


只不过我的是32*32的大小的,本来的好像是16*16的,不会影响吧

#8


取决于你的资源文件里面的IDR_MAINFRAME图标文件

#9


引用 8 楼 tiger9991 的回复:
取决于你的资源文件里面的IDR_MAINFRAME图标文件

我现在是有了IDR_MAINFRAME文件了,但是不导入啊,好像没关联上一样,就是左上角改不了,我怎么改回去啊

#10


在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中添加
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcom,(NULL,IDI_APPLICATION);

#11


我特地试了一下,用48X48都没问题,你关闭项目,把原来默认的图标删掉,然后拷贝你的图标过来,改名,重新导入,取名IDR_MAINFRAME,重新编译

#12


引用 11 楼 king_hhuang 的回复:
我特地试了一下,用48X48都没问题,你关闭项目,把原来默认的图标删掉,然后拷贝你的图标过来,改名,重新导入,取名IDR_MAINFRAME,重新编译

你这是针对窗口左上角的吗,我的是个空白,好像没找到一样,不过我再试一次

#13


引用 10 楼 jisuanji1bo 的回复:
在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中添加
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcom,(NULL,IDI_APPLICATION);

你这个是设置左上角的图标的吗,IDI_APPLICATION是与IDR_MAINFRAME完全不同的一个ico图片吗

#14


当然是啊,窗口左上角,任务栏都变成我的图标啦

#15


抱歉,上面说错了,你可以试试在CMainFrame::PreCreateWindow(CREATESTRUCT& cs),中添加
cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,0,LoadIcon(NULL,IDI_APPLICATION));里面的参数可以参照msdn

#16


你都是怎么改的
改这些东西是不需要写代码的
直接改资源就可以了

#17


哇,谢谢,成功了,我要是改了就不能添代码了,我原来里面就添了代码,删来删去,图片也添了N次删了N-1次,再在终于成功了,总结一下,要是想换exe的显示图片在res里换一个那个工程名的图片就行了,可能对大小敏感一点吧,想改工程左上角的就在rs里导入图片,把名字改成IDR_MAINFRAME就行了,要是这样改了,就不要往cs.里添代码了哦,16楼一语道破,高,实在是高

#1


你ReBuild一下

#2


你把res文件夹里面的你项目的那个ico用你的文件替换掉(文件名取成一样的),然后把IDR_MAINFRAME删掉,再导入你的那个ico,并ID为IDR_MAINFRAME

#3


引用 1 楼 huangcheng90 的回复:
你ReBuild一下

mei yong

#4


引用 2 楼 king_hhuang 的回复:
你把res文件夹里面的你项目的那个ico用你的文件替换掉(文件名取成一样的),然后把IDR_MAINFRAME删掉,再导入你的那个ico,并ID为IDR_MAINFRAME

i did so

#5


exe文件的图标和里面左上角的图标不是一起改的吧

#6


该回复于2011-03-21 09:16:00被版主删除

#7


只不过我的是32*32的大小的,本来的好像是16*16的,不会影响吧

#8


取决于你的资源文件里面的IDR_MAINFRAME图标文件

#9


引用 8 楼 tiger9991 的回复:
取决于你的资源文件里面的IDR_MAINFRAME图标文件

我现在是有了IDR_MAINFRAME文件了,但是不导入啊,好像没关联上一样,就是左上角改不了,我怎么改回去啊

#10


在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中添加
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcom,(NULL,IDI_APPLICATION);

#11


我特地试了一下,用48X48都没问题,你关闭项目,把原来默认的图标删掉,然后拷贝你的图标过来,改名,重新导入,取名IDR_MAINFRAME,重新编译

#12


引用 11 楼 king_hhuang 的回复:
我特地试了一下,用48X48都没问题,你关闭项目,把原来默认的图标删掉,然后拷贝你的图标过来,改名,重新导入,取名IDR_MAINFRAME,重新编译

你这是针对窗口左上角的吗,我的是个空白,好像没找到一样,不过我再试一次

#13


引用 10 楼 jisuanji1bo 的回复:
在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中添加
SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcom,(NULL,IDI_APPLICATION);

你这个是设置左上角的图标的吗,IDI_APPLICATION是与IDR_MAINFRAME完全不同的一个ico图片吗

#14


当然是啊,窗口左上角,任务栏都变成我的图标啦

#15


抱歉,上面说错了,你可以试试在CMainFrame::PreCreateWindow(CREATESTRUCT& cs),中添加
cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,0,LoadIcon(NULL,IDI_APPLICATION));里面的参数可以参照msdn

#16


你都是怎么改的
改这些东西是不需要写代码的
直接改资源就可以了

#17


哇,谢谢,成功了,我要是改了就不能添代码了,我原来里面就添了代码,删来删去,图片也添了N次删了N-1次,再在终于成功了,总结一下,要是想换exe的显示图片在res里换一个那个工程名的图片就行了,可能对大小敏感一点吧,想改工程左上角的就在rs里导入图片,把名字改成IDR_MAINFRAME就行了,要是这样改了,就不要往cs.里添代码了哦,16楼一语道破,高,实在是高