您的位置:首页 > 其它

MFC工具栏的使用

2015-12-05 16:26 260 查看


1、工具栏的作用

工具栏是Windows应用程序中一个非常重要的图形界面元素,它提供了一组顺序排列的带有位图图像的按钮。有一个较为明显的好处就是在有比较多按钮的情况下,使用工具栏可以更加方便的组织和管理资源。PhotoShop的主界面上就可以很明显的看到这一点。



图中标注箭头的使用的都是工具栏实现的。

2、创建工具栏



MSDN中可以看到工具栏继承自CControlBar,工具栏的创建MSDN中给出了两种创建方式:

第一种方式: 

1、创建一个toolbar资源

2、创建一个CTooBar类的对象

3、调用Create或者CreateEx函数来创建实例

4、调用LoadToolBar函数来对资源进行加载
示例:
if (!m_wndMyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndMyToolBar.LoadToolBar(IDR_MYTOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1;      // fail to create
}
m_wndMyToolBar.EnableDocking(CBRS_ALIGN_ANY);  //指定工具栏可以停靠
EnableDocking(CBRS_ALIGN_ANY);				  //指定frame框架可以被停靠
DockControlBar(&m_wndMyToolBar);               //停靠工具栏

第二种方式: 

1、创建一个CTooBar类的对象

2、调用Create或者CreateEx函数来创建实例

3、调用LoadBitMap函数来导入位图,该位图作为构建toolbar的按钮图标

4、调用SetButtons函数来设置按钮的风格并且为每一个按钮添加一个位图相关联

两个创建函数

BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TOOLBAR );

BOOL CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, CRect rcBorders = CRect(0, 0, 0, 0), UINT nID = AFX_IDW_TOOLBAR);

相比Create函数,CreateEx函数多加了一个参数dwCtrlStyle用来指定扁平风格和一个rcBorders的参数来指定边框的厚度。

工具栏和控制栏的风格列表如下:






3、使用位图作为工具栏图标

也就是第二种方式下讲到的那样,不是用VC中绘制的工具栏,而是使用自己导入的位图来作为工具栏。

  
if (!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)
)
{
return -1;
}
m_bitmap.LoadBitmap(IDB_BITMAP5);			//加载位位图
m_ToolBar.SetBitmap(m_bitmap);              //向工具栏中设置位图
UINT nIDs[] =								//ID列表
{
ID_BTN_A,ID_BTN_B,ID_BTN_C,
};
m_ToolBar.SetButtons(nIDs, 3);			    //向按钮中设置位图图像

后面的步骤就和之前是一样的了,这里加载的就成了24bit真彩的图片了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: