动态真彩工具栏

子晨i

子晨i

2016-01-29 12:05

动态真彩工具栏,动态真彩工具栏

动态真彩工具栏
作者:王健

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

下载本文配套源代码

源代码执行效果图如下:


与VCKBASE接触良久,从来都是贪婪的从中掘取好用的东东,却没想过把自己的东西拿出来与人共享,很不好意思。
自从我的RangerChat点对点聊天工具在VCKBASE上发表以来收到众多朋友的来信。他们很多人都说一次性看这么多代码,还真不知如何从中提取自己想要的东西。现在奉上我做项目过程中的一些好的资源片段供大家评判。以后我会不间断的提供一些好的代码和大家分享。谢谢大家。
第一个:一个拥有动态真彩图标的工具栏,相信可以为大家的应用程序增色不少。

Step1:建一个单文档/多文档框架
Step2:在框架类CMainFrame中添加如下变量

CReBar m_wndReBar

Step3:添加BOOL型成员函数CreateExToolBar()
BOOL CMainFrame::CreateExToolBar(){CImageList img;CString str;if(!m_wndReBar.Create(this)){return -1;}if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC)){return -1;      }//下面的代码是设置按钮的宽度和长度m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 80);//下面的代码是设置"热"的位图img.Create(22, 22, ILC_COLOR8|ILC_MASK,2,2);img.SetBkColor(::GetSysColor(COLOR_BTNFACE));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_MSG_GETBUTTON));//0收信.............//省略其它按钮设置的代码,详见本文提供的源代码m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);img.Detach();//下面的代码是设置"冷"的位图img.Create(19, 19, ILC_COLOR8|ILC_MASK, 2,2);img.SetBkColor(::GetSysColor(COLOR_BTNFACE));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_MSG_GETBUTTON));//0收信img.Add(AfxGetApp()->LoadIcon(IDI_ICON_MSG_WRITEMSGBTN));//1写信.............//省略其它按钮设置的代码,详见本文提供的源代码m_wndToolBar.GetToolBarCtrl().SetImageList(&img);img.Detach();//改变属性m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT|TBBS_CHECKBOX );m_wndToolBar.SetButtons(NULL,21);// set up each toolbar button设置文字  m_wndToolBar.SetButtonInfo(0, IDC_WRITEMSG, TBSTYLE_BUTTON, 1);m_wndToolBar.SetButtonText(0, "写信");............ //省略其它按钮设置的代码,详见本文提供的源代码CRect rectToolBar;//得到按钮的大小m_wndToolBar.GetItemRect(0, &rectToolBar);//设置按钮的大小m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(20,20));//在Rebar中加入ToolBarm_wndReBar.AddBar(&m_wndToolBar);//改变一些属性REBARBANDINFO rbbi;rbbi.cbSize = sizeof(rbbi);//这个是必须填rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE|RBBIM_BACKGROUND;//工具条的宽度rbbi.cxMinChild = rectToolBar.Width();//高度rbbi.cyMinChild = rectToolBar.Height();//下面这行代码是为工具条加入背景位图,请注意上rbbi.fMask中RBBIM_BACKGROUND标志rbbi.hbmBack = LoadBitmap(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_TOOLBARBKMAP));rbbi.cx = rbbi.cxIdeal = rectToolBar.Width() * 10;m_wndReBar.GetReBarCtrl().SetBandInfo(0, &rbbi);return TRUE;}
Step4:打开OnCreate()成员函数添加如下代码
//创建扩展工具栏
If (!this-CreateExToolBar()) return -1;

并把原先关于ToolBar的一切操作(创建、浮动)删除。
至此真彩动态工具栏已创建成功!

下面做一些说明:
No1: 工具栏中的每个按钮都要自已手动创建(见源码)
No2: 每个按钮的ID和消息处理要手动添加(在此不详述过程)
OK了,大家还不快试试。

展开更多 50%)
分享

猜你喜欢

动态真彩工具栏

C语言教程 C语言函数
动态真彩工具栏

工具栏怎么还原

计算机应用技术
工具栏怎么还原

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

电脑工具栏怎么还原

电脑入门
电脑工具栏怎么还原

Access 2007微型工具栏

编程语言 网络编程
Access 2007微型工具栏

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

WinRAR如何定制工具栏

电脑网络
WinRAR如何定制工具栏

Authorware6 工具栏

设计软件 平面设计软件 广告设计软件
Authorware6 工具栏

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VB.NET开发扫描客户端服务工具

VB.NET开发扫描客户端服务工具

jsp源码实例3(获取jsp各种参数)

jsp源码实例3(获取jsp各种参数)
下拉加载更多内容 ↓