CMFCToolBar, CDockablePane使用中的一些经验总结

### CMFCToolBar与CDockablePane使用经验总结 #### 一、CMFCToolBar简介 在Visual Studio 2008/2010等版本中,`CMFCToolBar`是一个非常重要的类,用于创建自定义工具栏。通过这个类可以轻松实现工具栏的创建、定制以及各种交互行为的设置。工具栏是应用程序中常见的界面元素之一,主要用于放置常用的操作按钮,提高用户操作效率。 #### 二、CMFCToolBar按钮显示文字 在某些情况下,可能需要在工具栏的按钮上显示文字,以增强界面的友好性和直观性。可以通过修改`CMFCToolBarButton`对象的属性来实现这一目的。具体步骤如下: 1. **定位按钮**:首先需要定位到特定的按钮,这里通过调用`CommandToIndex`方法获取按钮索引。 2. **获取按钮对象**:通过`GetButton`方法获取对应的`CMFCToolBarButton`对象。 3. **设置按钮属性**: - `m_bImage`: 控制是否显示图像,默认为`TRUE`。 - `m_bText`: 控制是否显示文本,默认为`TRUE`。 - `m_bWholeText`: 控制是否显示完整文本,默认为`TRUE`。 - `m_bTextBelow`: 控制文本是否位于图像下方,默认为`FALSE`。 - `m_nStyle`: 控制按钮样式,例如`TBBS_AUTOSIZE`表示根据文本自动调整大小。 - `m_strText`: 设置按钮上的文本内容。 - `m_bWrapText`: 控制文本是否换行,默认为`FALSE`。 示例代码如下: ```cpp CMFCToolBarButton *pBtn = NULL; int nIndex = 0; CString strBtnName; nIndex = m_wndToolBar.CommandToIndex(ID_FILE_NEW); if (nIndex >= 0) { pBtn = m_wndToolBar.GetButton(nIndex); if (pBtn != NULL) { pBtn->m_bImage = TRUE; pBtn->m_bText = TRUE; pBtn->m_bWholeText = TRUE; pBtn->m_bTextBelow = FALSE; pBtn->m_nStyle |= TBBS_AUTOSIZE; pBtn->m_strText = _T("新建"); pBtn->m_bWrapText = FALSE; } } ``` #### 三、CDockablePane禁用自动隐藏与关闭图标 `CDockablePane`是MFC中的一个类,用于创建可停靠窗口。有时候,我们需要禁止这些窗口的自动隐藏与关闭功能,或者阻止用户拖动窗口位置。这可以通过调整`CDockablePane`的创建方式来实现。 示例代码如下: ```cpp mGraphPane.Create(_T("图形属性"), this, CRect(0, 0, 200, 300), TRUE, IDD_DLG_GRAPHPANE, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_RESIZE); ``` 为了禁用自动隐藏与关闭图标,可以在创建`CDockablePane`时去掉相关的标志位,或者通过其他方式手动禁用这些功能。 #### 四、移除工具栏下拉箭头 在某些场景下,我们希望移除工具栏上的下拉箭头,避免用户误操作导致工具栏展开或收起。这可以通过调用`EnableDockSiteMenu`方法并传入`FALSE`来实现。 示例代码如下: ```cpp // 去除工具栏下拉箭头 GetDockingManager()->EnableDockSiteMenu(FALSE); ``` #### 五、固定CDockablePane大小 为了使`CDockablePane`工具栏的大小不可调节,可以通过重载`IsResizable`方法,并返回`FALSE`来实现。同时还需要修改主窗口中添加面板的方法,使用`AddPane`替代`DockPane`。 示例代码如下: ```cpp // 在CDockablePane的继承类头文件中重载IsResizable方法 virtual BOOL IsResizable() const { return FALSE; } // 主窗口中添加面板 AddPane(&XXXXX); ``` #### 六、隐藏CDockablePane标题 如果希望隐藏`CDockablePane`工具栏的标题,可以通过在创建窗口时设置`BOOL`类型的参数为`FALSE`来实现。 示例代码如下: ```cpp mShowLayerPane.Create(_T("图层显示"), this, CRect(0, 0, 200, 300), false, IDD_DLG_SHOWLAYER, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_RESIZE); ``` 以上就是关于Visual Studio 2008/2010中`CMFCToolBar`与`CDockablePane`使用的一些经验总结,希望能帮助开发者更好地理解和应用这两个类。











- ucliaohh2018-09-26垃圾
- 机器视觉大师2018-06-22有些参考意义。

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库原理及应用第2章.ppt
- 基于聚类的二次异常入侵检测算法.docx
- 单片机人体脉搏检测系统设计.doc
- 电气基础知识讲座IT计算机专业资料.ppt
- 无线网络安全论文设计.docx
- 异步通信与同步通信.ppt
- 基于应用人才培养模式的计算机网络课程教改研究.docx
- DVBCQAM调制主要参数选择与测试.doc
- PLC的交流异步电机转速闭环控制系统设计.doc
- 计算机系统配套零、部件竞争策略分析报告.docx
- 《信息系统集成技术实践》课程大纲.doc
- 基于数据挖掘的针灸治疗重症肌无力的现代文献取穴规律分析.docx
- 电力信息网络安全存在问题及对策分析.docx
- 基于 Python 的自动驾驶规划与控制代码实现
- 下半年软考系统集成项目管理测验真题(上午).doc
- 自动化PLC课程设计实施方案指导书.doc


