力为的技术博客

联系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks


很久没有发生这样的惨案了

那是2007年8月29日的下午,天空仍然裹着小雨。早晨跟另外两个同事一起挤一把伞的情形还历历在目,裤腿湿了,大半个人都湿了。一阵风吹来,……

怎么这个Icon还是不显示!

我们经常用CImageList 来存放一组Bitmap,然后从中extract icon 出来。而MFC中大多数的控件也经常需要SetImageList才能显示Icon。用了那么多CImageList,用了那么多的CXXXCtrl,也没有遇到今天的问题:设置给控件最后的一个ICON死活是显示不出来;而在另外一个测试程序里却可以正常显示。

CImageList m_imageList;

//-----------------
m_iamgeList.Create(IDB_XXX, 161, RGB(255,0,0));

m_xCtrl.SetImageList(
&m_iamgeList);

.


X0分钟过去了,寻思了N种可能还是没有思路。恰好有人闲聊起来,就将问题描述了一下。还没等描述完,突然想到,莫非是Bitmap的问题?没有怀疑过Produc里原来的bitmap资源文件会有问题,check了一下发现大小是95*16, 这95/16得#¥%#?莫非因为宽度这少了点?Try......OK!

这解决问题的过程非常令人头晕,但问题已解决,就发现不过如此。

如果CImageList加载的Bitmap是用来做ICON,bitmapWidth = iconCount * iconWidth。如果不小心少了点,最后那个可就create不成功喽。


DownLoad
posted on 2007-08-29 23:26 力为 阅读(3043) 评论(1)  编辑 收藏 引用 所属分类: 3. VC&MFC&Qt

评论

# re: 一个像素引发的惨案---CImageList 2007-08-30 08:51 Galaxy
呵呵, LoadBitmap时应该在程序中取得bitmap的width, height, 做一下判断的好啊
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理