CToolBar与CToolBarCtrl以及CStatusBar 与CStatusBarCtrl的区别

本文详细介绍了CToolBar和CStatusBar如何简化MFC中工具栏和状态栏的创建过程,包括如何加载位图、定义按钮以及它们如何自动调整颜色以匹配当前按钮颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CToolBar和CToolBarCtrl以及CStatusBar 和CStatusBarCtrl均是继承自CWnd类。

CToolBar和CStatusBar都是在control bars 类中的封装,而CStatusBarCtrl和CToolBarCtrl都是在controls 类

中的封装。

CToolBarCtrl和CStatusBar由于它们只是简单地封装了API而没有增加附加的功能,所以由它们所创建的工具栏和状态栏不会比API版本增加更多的功能。

它们也不能移动或被用户停靠或者垂直对齐。它们仅能用于在控制条内更方便地设置并控制按钮和窗格。所以,为了得到一些所希望的功能就必须创建自己的控制条。

 

这就要用到另外两个MFC类: CToolBar和CStatusBar。  

 

用CToolBar创建工具栏已经是一件很容易的事,而且不需要考虑rect参数。

但最大的方便,还在于装载位图和定义按钮的时候: 

  CToolBar tb; tb.LoadToolBar(UINT id);   

此时不用编程定义位图和每个按钮,使用Toolbar Editor创建一个将要引用的资源即可。  

 

LoadToolBar使用这些类不仅使装载和配置控制条变得更容易,而且还可以得到下列增强的功能:   

使用CToolBar类,工具栏中使用的位图的颜色自动地随当前按钮颜色而变化。

 

淡灰色    是标准的Windows按钮表面色,但是,如果用户确定为自己的桌面选定一种新的色彩方案(例    如淡紫红色),那么如果工具栏仍保持淡灰色,按钮看起来就好像偏离了本来的位置。因此,  CToolBar将它们转变成当前的按钮颜色。

 

按照c++ 的继承思想,可以认为CToolBar 和CStausBar类是从CToolBarCtrl和CStatusBarCtrl派生的,因此可以继承得到这两者的功能。

转载于:https://www.cnblogs.com/lxt287994374/archive/2013/03/13/2957129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值