最近在学习中国象棋程序的书
照着里面编程序,但是我想把它的素材变成象棋小巫师里的素材,
把棋子弄进去后,为什么感觉失真了?
如图,左边的是我的,右边的是小巫师的。。
我用的是cimagelist里面的create函数。。
m_Chessman.Create(IDB_chessman1,56,15,RGB(0,255,0));
载入bmp图片感觉失真变黄
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- gzrjzcx 2017-02-22 03:13关注
自己解决了
应该是cImagelist.create函数的问题
BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );
BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );
两种函数都能创建cImagelist,但是第二种貌似直接默认图片是4Bit 36色的?(具体我也不懂)
不过第一种就可以自己选择,nFlags这个参数写ILC_COLORDDB|ILC_MASK,指的是使用系统设备颜色且有透明色所以改成这样:
m_Chessman.Create(56,56,ILC_COLORDDB|ILC_MASK,15,0);//ILC_COLORDDB|ILC_MASK:使用当前设备色且有透明效果
CBitmap cBitmap;
cBitmap.LoadBitmap(IDB_chessman1);
m_Chessman.Add(&cBitmap,MASK_COLOR);
cBitmap.DeleteObject();先创建cImagelist,然后读取bmp图片,然后添加进入cImagelist里面用draw函数画出来
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报