如何实现24位色工具条

2016-01-29 12:02 47 1 收藏

如何实现24位色工具条,如何实现24位色工具条

【 tulaoshi.com - C语言心得技巧 】

如何实现24位色工具条


作者/NorthTibet

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

下载源代码


大家知道IE的工具条都是多彩的,本文介绍如何在自己的应用程序里实现24位色工具条。如图一所示:


图一 

第一步:

在mainframe.h文件中声明成员变量:

      CToolBar m_hotToolBar;      
在 CMainFrame::OnCreate() 中创建工具条,假设你已经创建了一个ToolBar资源和两个工具条位图(Bitmap)资源:IDB_TOOLBAR_COLD 和 IDB_TOOLBAR_HOT,前者表示的是常态按钮,而后者表示的是鼠标移到上面时的状态按钮。用下面的代码创建工具条:
if (!m_hotToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_LIST, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_hotToolBar.LoadToolBar(IDR_HOTBAR)){TRACE0("Failed to create toolbarn");return -1;      // fail to create}      

第二步:

在CMainFrame::OnCreate()中还要添加如下代码,它们实现对位图资源的存取:
// Set up hot bar image lists.CImageListimageList;CBitmapbitmap;// Create and set the normal toolbar image list.bitmap.LoadBitmap(IDB_TOOLBAR_COLD);imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 13, 1);imageList.Add(&bitmap, RGB(255,0,255));m_hotToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);imageList.Detach();bitmap.Detach();// Create and set the hot toolbar image list.bitmap.LoadBitmap(IDB_TOOLBAR_HOT);imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 13, 1);imageList.Add(&bitmap, RGB(255,0,255));m_hotToolBar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)imageList.m_hImageList);imageList.Detach();bitmap.Detach();      

第三步:

添加24位色工具条按钮的消息处理函数,这个工具条有五个按钮,如图一。那么在mainframe.h中加入消息处理函数声明:
afx_msg void OnBack();afx_msg void OnForward();afx_msg void OnStop();afx_msg void OnRefresh();afx_msg void OnHome();      
在mainframe.cpp中添加消息处理代码:
消息映射
   ON_COMMAND(ID_BACK, OnBack)ON_COMMAND(ID_FORWARD, OnForward)ON_COMMAND(ID_STOP, OnStop)ON_COMMAND(ID_REFRESH, OnRefresh)ON_COMMAND(ID_HOME, OnHome)      
消息映射函数代码,为简单起见,这些函数没有做任何事情。
        void CMainFrame::OnBack() {}        void CMainFrame::OnForward() {}        void CMainFrame::OnStop() {}        void CMainFrame::OnRefresh() {}        void CMainFrame::OnHome() {}      
编译程序并运行。

来源:http://www.tulaoshi.com/n/20160129/1484338.html

延伸阅读
工作之余做了这个小东西 仿Office 2003的工具条,主要尝试不用任何图片(当然不可能把所有按扭都做出来),所有的控件都是用Css和Javascript做的 菜单就不做了,偷懒中 感兴趣的朋友可以和我联系,大家交流交流.运行代码框 <html<head<meta http-equiv="Content-Language" content="zh-cn"<meta http-equiv="Content-Type" content=...
引言 工具条作为大多数标准的Windows应用程序的一个重要组成部分,使其成为促进人机界面友好的一个重要工具。通过工具条极大方便了用户对程序的操作,但是在由Microsoft Visual C++开发环境所创建的应用程序框架中的工具条只是一个简单的按钮的集合,在功能上也仅仅是起到了菜单快捷方式的作用,而没有做到象VC、Word等软件的工具条那样,...
如何去掉浮动工具条中的“关闭”按钮 作者/NorthTibet 下载源代码     在C++/MFC框架应用程序里,当浮动工具条被拖离主窗口后,一般都有一个“关闭”按钮,如图一所示: 图一      本来这个按钮完全是按照Windows应用程序的UI设计规范而设计...
标签: 办公软件
嵌入式工具条困扰着喜欢尝试新软件的朋友们。大家请看图1,这是一个Word2003软件的界面截图,在图中可以清楚地看到Word原本不多的编辑区正在被这些“不请自来的客人”肆意地侵蚀着。 在这里之所以称其为“不请自来”是因为每当安装这些软件时,它们都会自作主张地将自己的快捷工具条嵌入到常用软件中,也正是这些对我们没什么用的工...
可以显示多行文字的工具条 作者:ahr 下载源代码 界面显示效果如图一: 图一 例子程序运行画面 CToolBar不支持多行文字,本文将通过一个定制的MFC/C++类 CMTToolBar 实现在工具条中显示多行文字。其思路是先把文字变成位图,再替换原...

经验教程

174

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部