WEB 开发 开发语言 Java 技术 .Net 技术 数 据 库 硬件使用
图象媒体 Linux/Unix 移动平台 嵌入开发 Windows 专区 软件工程
Ajax 技术 | ASP | PHP | ASP.NET | C# | JSP | Access | Oracle | 网页设计 | Flash | 安全专题 | IIS | VC/MFC | Delphi | C/C++
 你的位置:首页 > 开发语言 > VC/MFC

怎么自定义程序图标?
[ 来源:ITWENKU 时间:2006-9-22 9:58:20 | 浏览:250人次 ]

我导入一个ico资源,在对话框的构造函数里调用了AfxGetApp()->LoadIcon(),但这只能修改标题栏上的图标。怎样把程序的图标换成自己想要的?


删除IDR_MAINFRAME
插入新的图标命名为IDR_MAINFRAME


1.直接修改IDR_MAINFRAME

2. 在CMainFrm.h中定义一个HICON m_hIcon;

在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
return TRUE;
}


3.在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

SetIcon(m_hIcon, TRUE);// Set big icon
SetIcon(m_hIcon, FALSE);// Set small icon

return 0;
}




我试了一下,果然可以。可是为什么用新添加的资源图标不行呢?难道IDR_MAINFRAME是保留资源?


换图标后重新生成工程


因为
(1)程序运行的时候,就是LoadIcon(IDR_MAINFRAME)
所以程序运行显示的图标是IDR_MAINFRAME

(2)IDR_MAINFRAME数字很小,(一般是IDR_MAINFRAME=128)
所以它是你的程序的第一个图标,
所以操作系统显示文件图标也显示它.

注意,图标至少需要两个规格:
16*16 和 32*32
最好还有 48*48

 相关文章
·如何让两个窗口同时移动
·计算过程中更新对话框中Cedit的内容
·我用DirectDraw做了一个播放器,为什么每当有对话框在画面上移动时画面上会留下对话框的痕迹,怎样解决
·线程控制函数问题UINT CSerialPort::CommThread(LPVOID pParam)
·有什么简单的方法设置普通按纽的文字颜色
·InterlockedExchangeAdd 的 64 位版本是什么?

 推荐文章
求助--补全代码
如何知道一个线程还在“正常运行”
访问网络出现异常
如何将一个文件夹里的文件组织成xml描述信息
想将一些东东按拼音排序!!
求Debugging application 的sourcecode
vc开发的activex可以在网页中用吗?
请问什么时候需要为资源(例如对话框或按钮)新建一个类?
如何用SQL语言完成复杂字符串的筛选
有关DNS被屏蔽的问题?
MDI程序,如何像VC界面那样,编辑对话框时候在旁边显示标尺?
windows搜索驱动的默认路径是什么
 版权所有:IT问库
copyright © 2006 www.itwenku.cn all rights reserved.