正文

MFC/Windows编程之个性化图标2008-04-08 16:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xman/34013.html

分享到:

        我们发现向导生成的MFC程序生成的桌面上(资源管理器上)的.exe文件和运行时标题栏上(最小化时任务栏上)的图标都是一样,实际上我们可以为它们配置不同的图标。实际上vc默认的那个MFC的图标(本案例中的Test.ico)是一个ID号对应了2个图标,一个16×16的一个32×32的。一个16×16的小图标是用于标题栏和最小化时任务栏的。另一个32×32的大图标则是用于桌面和资源管理器的。故我们可以为应用程序再添加一个与默认图标大小不同的.ico文件. 以下为MFC向导生成的窗口(标题已改)   以下为生成的.EXE文件在资源管理器中的缩略图: 以下为项目的资源res文件夹: 一.个性化图标  (1)为应用实例添加光标资源 右击解决方案资源管理器中的资源文件-〉添加-〉资源-〉选择Icon资源类型-〉若选“导入”则可以从导入硬盘中已有的ICON文件;若选“新建” 则打开资源编辑器,自己绘制图标。这里我们选择导入我们收藏的ICON文件,一个黄纸飞机IDI_ICON1和一个红纸飞机IDI_ICON2。 我们在这里先将这两个图标通过CDC的DrawIcon函数在窗口中绘制出来。 void CEX041View::OnDraw(CDC* pDC) {     // TODO: 在此处为本机数据添加绘制代码     HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);     pDC->DrawIcon(0,0,hIcon);     DestroyIcon(hIcon);       hIcon=AfxGetApp()->LoadIcon(IDI_ICON2);     pDC->DrawIcon(50,0,hIcon);     DestroyIcon(hIcon); }  (2)为应用程序实例加载光标资源,并为主窗口设置指定的图标。 使用CWinApp::LoadIcon和CWnd::SetIcon加载图标。 1CWinApp::LoadIconHICON LoadIcon( UINT nIDResource ) const; 参数nIDResource为图标资源的ID。 2CWnd::SetIconHICON SetIcon( HICON hIcon, BOOL bBigIcon );参数hIcon为以前图标的句柄。 参数bBigIcon,如果为TRUE,则指定了32×32像素的图标;如果为FALSE,则指定了16×16像素的图标。 在BOOL CTestApp::InitInstance()中添加代码。    <1> m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),FALSE);// 设置窗口的小图标    m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),TRUE);   //设置窗口的大图标 结果标题栏显示为IDI_ICON1,但是资源管理器中的.EXE文件依然为默认MFC图标。 <2>m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),TRUE);// 设置窗口的大图标    m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),FALSE);  //设置窗口的小图标 结果标题栏显示为IDI_ICON2,但是资源管理器中的.EXE文件依然为默认MFC图标。 <1><2>说明当2个BOOL bBigIcon的值不同时,选择BOOL bBigIcon的值为FALSE的图标作为窗口标题栏图标。 <3> m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),TRUE);//设置窗口的大图标     m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),TRUE);// 设置窗口的大图标 结果标题栏显示为IDI_ICON1,但是资源管理器中的.EXE文件依然为默认MFC图标。 <4>m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),TRUE);//设置窗口的大图标    m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),TRUE);// 设置窗口的大图标 结果标题栏显示为IDI_ICON2,但是资源管理器中的.EXE文件依然为默认MFC图标。 3><4>说明当2个BOOL bBigIcon的值同为TRUE时时,选择后一个作为窗口标题栏图标。 <5>m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),FALSE);//设置窗口的小图标    m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),FALSE);// 设置窗口的小图标 结果标题栏显示为IDI_ICON2,但是资源管理器中的.EXE文件依然为默认MFC图标。 <6>m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON2),FALSE);// 设置窗口的小图标    m_pMainWnd->SetIcon ( LoadIcon( IDI_ICON1),FALSE);//设置窗口的小图标 结果标题栏显示为IDI_ICON1,但是资源管理器中的.EXE文件依然为默认MFC图标。 以下为ICON1作为窗口图标效果: 以下为ICON2作为窗口图标效果: <5><6>说明当2个BOOL bBigIcon的值同为FALSE时,选择后一个作为窗口标题栏图标。 (3)用替代法为资源管理器中的.EXE文件更改图标。 我们可以将一个图标Sina.ICO移动到...\Visual Studio 2005\Projects\EX041\EX041\res,然后将原来的MFC默认图标EX041.ico重命名为Test1.ico,将Sina.ICO重命名为Test.ico,则资源管理器中的.EXE文件即设置为我们所要的图标。 以下为项目的资源res文件夹: 以下为生成的.EXE文件在资源管理器中的缩略图:

阅读(10135) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册