关于EXE文件图标\主窗口图标的若干疑问

lyclowlevel 2007-04-06 09:44:48
假设创建了名为AppName的SDI程序
1 为何RES文件夹的AppName.ico无法用“画图”打开,而我们在“资源管理器”中创建的ICON却可以呢?
2 为什么用资源管理器对ID为IDR_MAINFRAME的ICON编辑后,应用程序主窗口的图标依旧为“MFC”,没有任何改变呢?
...全文
211 点赞 收藏 8
写回复
8 条回复
lyclowlevel 2007年04月07日
希望有人解释下哦.
回复 点赞
长尾巴的悟空 2007年04月06日
汗.
回复 点赞
lyclowlevel 2007年04月06日
如果,如楼上所言,那我重新编译不就得了.
回复 点赞
god_niuniu 2007年04月06日
具体什么原因,我不是很明白,我也只是处学者,以下是我的猜测:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSquaresDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CSquaresView));
AddDocTemplate(pDocTemplate);
这三个类全部是动态创建的,所以需要的是物理上存在的资源文件,也就是res\SdiSquares.ico 这个.
而一般的EXE是静态编译的,RC直接被编译进EXE了.
猜测而已,望高手指导
回复 点赞
lyclowlevel 2007年04月06日
我只是想要知道为什么,至于如何改变图标,我还是懂的.
回复 点赞
god_niuniu 2007年04月06日
你右击IDR_MAINFRAME 属性 里面的文件名是res\SdiSquares.ico 也就是说EXE文件连接的是这个文件 所以如果想改变 只需要改变这个ICO就可以了.
回复 点赞
blackmurder 2007年04月06日
第2个问题我也遇到过,我的解决方法是把他的图标删掉,新建一个改名为IDR_MAINFRAME
LZ用的是6.0吧,我换了2005以后就没这个问题了
回复 点赞
Y___Y 2007年04月06日
1.我的可以
2.你要将资源文件(.rc)文件编译,或者直接重新编译
回复 点赞
发动态
发帖子
界面
创建于2007-09-28

7975

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告