绘制16*16的图标

 今天想画一个16*16的图标,图标文件已在资源中创建,只有16*16有图,默认的32*32为空白。不过自己还是按照习惯,LoadIcon载入图标,然后DrawIcon绘制图标,结果什么也没有显示。

搜索LoadIcon函数的说明,发现这个函数只能处理32*32的图标,也就是只对符合SM_CXICON和SM_CYICON的规定大小的图标才有效。而且告知该函数已经被LoadImage替代。

好吧,那就用LoadImage来处理吧,把LoadImage函数中的图标宽度和高度参数都设置为16,完成图标句柄的生成,然后用DrawIcon绘图,结果发现图标变的好大,肯定不是16*16啊,郁闷。

继续查找DrawIcon函数的用法,晕啊,这个函数也只能绘制符合SM_CXICON和SM_CYICON规定大小的图标,如果你载入的图标不是这个尺寸,它就自动进行放缩了。现在我知道了,实际DrawIcon函数把我16*16的图标画成32*32的了。

哦,原来,想自己指定大小,还必须用DrawIconEx函数,这个函数中可以指定大小的。可又发现,CDC类居然没有封装这个函数,不得不用SDK的函数来处理了,DrawIconEx(dc.m_hDC,pt.x,pt.y,hIcon,16,16,0,NULL,DI_NORMAL);终于搞定。

附上最终的代码,因为网上我并没有找到完整的代码,或许是别人都会了吧。不过也许还有人和我一样还不会呢?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐鹦鹉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值