可执行程序的图标怎么不对啦?
可执行程序的图标怎么不对啦?
楼主qiaoqli1978(老兔子)2002-05-14 14:43:16 在 C++ Builder / 基础类 提问我在BCB下编写了一个程序,在Project->Options->Application->Application settiong中的icon选择了一个图标,然后确定,运行该程序。生成的可执行程序图标却是一个不知道从哪里钻出来的图标,象一个枪靶子。回头去看我的应用程序图标设置,是对的呀。不知道是怎么回事。有知道的高手吗?谢谢! 问题点数:0、回复次数:17Top
1 楼jishiping(JSP 季世平)回复于 2002-05-14 15:01:53 得分 0
你的程序里有多个图标。这时你必须将MAINICON放在第一个。也就是说,在有
其它图标的情况下,其他图标的名字必须出现在MAINICON的后面。也许你觉得
这样太死了。活一点的方法,在程序的开始加入下面的代码就可以了:
Application->Icon->Handle = LoadIcon(hIns,"MAINICON");Top
2 楼jishiping(JSP 季世平)回复于 2002-05-14 15:07:38 得分 0
你的程序里有多个图标。这时你必须将MAINICON放在第一个。也就是说,在有
其它图标的情况下,其他图标的名字必须出现在MAINICON的后面。也许你觉得
这样太死了。活一点的方法,在程序的开始加入下面的代码就可以了:
Application->Icon->Handle = LoadIcon(hIns,"MAINICON");Top
3 楼jishiping(JSP 季世平)回复于 2002-05-14 15:10:41 得分 0
上面的 hIns 是函数 WinMain 的第一个参数。我用的是hIns,将它改成你
取的变量名就可以了。Top
4 楼liux330(弧线+直线)回复于 2002-05-14 15:14:54 得分 0
Sounce文件里有一句(。。。。。),不记得了,我在外面出差,没工具,回去查查。Top
5 楼qiaoqli1978(老兔子)回复于 2002-05-14 18:21:13 得分 0
致季世平:你好。在程序的开始加入代码Application->Icon->Handle = LoadIcon(hIns,"MAINICON"),所谓的程序的开始是指哪里呢?我在WinMain函数中try包含的部分加入了你提供的代码,运行后仍没有什么变化,是否我理解有误?请赐教。谢谢!Top
6 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2002-05-14 19:44:44 得分 0
学习学习Top
7 楼jinwenming(狼)回复于 2002-05-14 20:03:51 得分 0
你可能在属性中加了图标!!Properties中的IconTop
8 楼Adayuer(饭碗饭碗饭碗你在哪里?)回复于 2002-05-14 20:26:51 得分 0
还有一个问题,我在application里用了一个图标a,然后编译运行这个application,在link之后,就出现了cpu调试的窗口。换其他图标后一切正常,只是用这个图标a的时候才出这个现象,新建application也没用。
是不是特定的图标造成bcb编译时候出问题 ?Top
9 楼jishiping(JSP 季世平)回复于 2002-05-14 22:18:12 得分 0
WINAPI WinMain(HINSTANCE hIns, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->Icon->Handle = LoadIcon(hIns,"MAINICON");
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
Top
10 楼qiaoqli1978(老兔子)回复于 2002-05-15 17:46:07 得分 0
谢谢各位的帮助,上面的方法我均试了n次,可惜无效。不知道是不是因为其他的什么原因。我漏说了一个线索,程序原先是没有这个问题的,我曾把这个程序移植到另一台机器的BCB环境中,移植过去后就出现了这个问题,然后我在那台机器上对程序做了修改并保存。当时并没在意图标变化的问题。当我再移植回原来的机器后,就始终改不过来了。大家帮忙分析分析,谢谢!Top
11 楼qiaoqli1978(老兔子)回复于 2002-05-15 17:47:29 得分 0
谢谢各位的帮助,上面的方法我均试了n次,可惜无效。不知道是不是因为其他的什么原因。我漏说了一个线索,程序原先是没有这个问题的,我曾把这个程序移植到另一台机器的BCB环境中,移植过去后就出现了这个问题,然后我在那台机器上对程序做了修改并保存。当时并没在意图标变化的问题。当我再移植回原来的机器后,就始终改不过来了。大家帮忙分析分析,谢谢!Top
12 楼ddeng(登登)回复于 2002-05-15 18:05:12 得分 0
可能是图标颜色数的问题(256色的应该没问题),你可以用图标编辑软件编辑一下你用的图标,我以前也碰到过类似的问题,当时使用的含有多种规格的复合图标,颜色数是16M,不过只调试时会弹出CPU调试窗口,独立运行时倒没错。后来我改成256色图标就没问题了。Top
13 楼ddeng(登登)回复于 2002-05-15 18:07:13 得分 0
很有可能是你的图标文件中含有两种或多种规格,而大图标和小图标不一致。Top
14 楼dragonhux(dragon(清水))回复于 2002-05-15 20:31:22 得分 0
以上大哥的话都对,但程序的图标始终不变!这你介绍一个办法,以做参考!
在你的程序中除MAINICON外,肯定有其它的图标,如果不使用的话,可以有
个取巧的办法,就是使用BCB光盘上带的WORKSHOP工具,可以处理执行文件中
图标,打开执行文件,将其它的图标改名,使安A..Z的排列顺序图标MAINICON
在第一个!
记住,不要删除,在98下,到NT下就有问题!
我也处理过多个文件!Top
15 楼xingzhou(往事悠悠,网事幽幽)回复于 2002-05-22 16:18:11 得分 0
我也有这个苦恼,不过我发现,用Exescope编辑可执行文件的资源时,发现在图标下有“爱沙尼亚语”,和“中文”两种图标,不知道CB6这个图标为什么会插入这个图标,而且放在最前面,成了默认的图标。
烦恼之极,也许是盗版的爱沙尼亚的版本,呵呵Top
16 楼qiaoqli1978(老兔子)回复于 2002-05-27 12:02:06 得分 0
楼上的话值得考虑,我看看。
Thanks!Top
17 楼Behard(我爱天安门)回复于 2002-05-27 12:37:39 得分 0
把 project.res 文件删除
或者重新作一个新的 project 试一试。Top
18 楼Behard(我爱天安门)回复于 2002-05-27 12:39:59 得分 0
不过也有可能是别的原因
我曾经试过把一个 bcb3.0 的 project 用 bcb5.5 编译后再用 bcb3.0 时无论如何更改都是固定的图标(bcb5.5的默认图标)Top
19 楼qiaoqli1978(老兔子)回复于 2002-05-28 09:24:27 得分 0
终于找到解决的方法了。在我的程序里用到了托盘程序,而BCB的example里有相应托盘程序的例子(TrayIcon),例子中Application Setting设置的图标始终影响到我的应用程序图标。我将例子中Application Setting的图标改为应用程序需要的图标,然后就解决了应用程序图标总是不对的问题。但是这始终很让人恼火,因为我终究没能达到解决这类问题的根本。比如说,仅通过修改应用程序的设置或代码达到目的;或找到应用程序获取图标的规则、优先权、怎样获取的等等。不知道我的想法是否有误,还请大家指教。Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
