c – MFC工具栏图标的颜色深度越高
发布时间:2020-12-16 06:01:48 所属栏目:百科 来源:网络整理
导读:我想知道如何在MFC中制作一个使用24位或256色位图而不是可怕的16色位图的工具栏. 任何人都可以指出一些简单的代码方向吗? 谢谢 解决方法 发生这种情况的原因是MFC CToolbar类使用内部的图像列表,其初始化仅使用16种颜色.解决方案是创建我们自己的图像列表,
我想知道如何在MFC中制作一个使用24位或256色位图而不是可怕的16色位图的工具栏.
任何人都可以指出一些简单的代码方向吗? 谢谢 解决方法
发生这种情况的原因是MFC CToolbar类使用内部的图像列表,其初始化仅使用16种颜色.解决方案是创建我们自己的图像列表,并告诉工具栏使用它.我知道这将适用于256色,但是我没有用更高的位深度进行测试:
首先,从资源加载256色位图: HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME),IMAGE_BITMAP,LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS); CBitmap bm; bm.Attach(hBitmap); 接下来,创建一个256色图像列表并添加我们的位图: CImageList m_imagelist.Create(20,20,ILC_COLOR8,4,4); m_imagelist.Add(&bm,(CBitmap*) NULL); 最后,我们需要告诉工具栏使用新的图像列表: m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist); VS2008中的新MFC版本也可能解决了这个问题,因为我知道许多UI元素已被更新.我还没有尝试使用它,所以我不能确定. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |