WEB开发网
开发学院软件开发VC 如何让工具条显示256色图像 阅读

如何让工具条显示256色图像

 2008-01-19 20:23:53 来源:WEB开发网   
核心提示:第一步一定要用::LoadImage加载工具栏位图,这个函数是个多用途函数,如何让工具条显示256色图像(2),它可以加载光标、图标和位图,加载位图时,这一步很重要,千万不要忘记!m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilToolBar);在工具栏中使用256色图像

第一步一定要用::LoadImage加载工具栏位图。这个函数是个多用途函数,它可以加载光标、图标和位图。加载位图时,这个函数甚至还能将位图中的某些颜色映射到当前的屏幕颜色。例如,DEMO程序中的工具栏位图(图一)使用RGB(192,192,192)为背景;如果恰好系统上有3D颜色,则LR_LOADMAP3DCOLORS标志会让LoadImage将背景映射到系统实际的3D(GetSysColor(COLOR_3DFACE))颜色。

HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_BITMAP,
0,0, // cx, cy
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );

LoadImage返回一个位图句柄(HBITMAP),但MFC会更喜欢与CBitmaps打交道,所以接下来就是创建一个CBitmap对象并将它与你的句柄联系(Attach)起来。

CBitmap bm;

bm.Attach(hbm);

现在有了CBitmap对象,你就可以从它那儿创建新的图像清单了。

m_ilToolBar.Create(20,20,ILC_COLOR8,4,4);

m_ilToolBar.Add(&bm,(CBitmap*)NULL);

m_ilToolBar是个CMainFrame成员,ILC_COLOR8是个神奇的标志,它创建一个8位颜色的调色板位图——既256色的位图。如果你愿意,它甚至能创建24位颜色的位图——但是要记住LR_LOADMAP3DCOLORS只能和调色板位图一起使用。最后一步是将新创建的图像清单用于工具栏。这一步很重要,千万不要忘记!

m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilToolBar);

在工具栏中使用256色图像就这么简单。这种技术同样可以用于列表视图中的图像以及rebars和其它使用图像清单的控制。赶快试一下吧!

上一页  1 2 

Tags:如何 工具 显示

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接