绘制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);终于搞定。

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

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值