我想知道如何在MFC中制作使用24位或256色位图而不是可怕的16色位图的工具栏。
有没有人可以指导我一些简单代码的方向?
谢谢
HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_BITMAP,
0,0, 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 元素已经得到更新。 我还没有实际尝试使用它,所以不能确定。
这个解决方案完美地运行了,你只需要稍微修复一下它:
CImageList m_imagelist;
m_imagelist.Create(20, 20, ILC_COLOR8, 4, 4);
m_imagelist.Add(&bm, (CBitmap*) NULL);