浅谈MFC图标

在这个.Net, java横行的年代,继续谈MFC是否已经过时了呢?似乎是的,并且我谈的都是很具体的实现问题。。。不过,既然自己所找,那还是留些记忆的好。

 

MFC程序有一个默认图标,定义在resource文件里面,资源号为IDR_MAINFRAME,图标为和程序同名的.ico文件,这是MFC框架里面自动注册,无需麻烦,觉得不爽,可以简单将其替换之。

 

值得注意的是,程序有大小图标,程序文件图标是大图标,而标题栏和任务栏上的小图标,分别对应32x32和16x16的两种,假如需要程序分别关联着两种尺寸,需要对读取的图标进行注册,

 

当时看见这个很奇怪,对一个图标同时调用true和false算是个什么劲?后来简单搜索下,原来是将大小尺寸注册上MFC,通知其可以调用。具体的内涵,还有待进一步查证。

 

此外,还有系统托盘图标,需要使用Shell_NotifyIcon。简单讲就是使用NOTIFYICONDATA数据结构,loadIcon读取图标资源,NIM_ADD、NIM_DELETE、NIM_MODIFY进行操作。

 

而使用这个操作遇到的问题是,当我有一组图标时,发现它只会调用32x32的图标,而无视我明明做在ico文件里面的16x16的图标。究其原因在于LoadIcon这个函数只会读32x32的图标,其他的不认,所以有一个定制函数浮出水面,LoadImage+IMAGE_ICON,此函数可以指定图标大小,对于我的系统托盘好像只需要16x16的就可以了。

 

一些简单的归纳。收笔。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值