提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2020-11-25 13:37:55.833|阅读 547 次
概述:Toolkit Pro 是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件。本文通过实例说明MFC工具栏的创建、设计和使用方法,包括三个demo。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
Visual c++ 提 供 了 功 能 强 大 的 类 库, 基 本 上 应 用 开 发 的 要 求, 但 对 于 某 些 特 殊 要 求 的 界 面, 如 图 像 兼 文 字 的 按 纽, 列 表 框 中 插 入 图 像, 中 国 式 报 表 等 等, 仍 显 得 力 不 从 心, 因 而 很 有 必 要 创 建 扩 展MFC 类 库, 以 满 足 实 际 开 发 的 需 求。But,Toolkit Pro 是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件。 根据需要可进行 下载体验!
本文通过实例说明MFC工具栏的创建、设计和使用方法,包括三个demo。
demo1:创建一个工具栏
C++代码
//摘抄自MSDN demo1 (创建一个工具栏) 1.Create a toolbar resource. /*可以先插入一个新的工具栏资源 添加分隔符,将按钮向右拖动一小下 删除按钮,将按钮拖动出工具栏 */ 2.Construct the CToolBar object. /* 工具栏是 CToolBar 对象,声明为应用程序的 CMainFrame 类的数据成员。也就是说,工具栏对象嵌入到主框架窗口对象中。这意味着 MFC 在创建框架窗口时创建工具栏,在销毁框架窗口时销毁工具栏。 */ 3.Call the Create (or CreateEx) function to create the Windows toolbar and attach it to the CToolBar object. 4.Call LoadToolBar to load the toolbar resource. /* 工具栏创建发生在 CMainFrame::OnCreate 中。MFC 在创建框架窗口之后且在窗口可见之前调用 OnCreate。 在 OnCreate 中调用适当的函数来停靠或浮动工具栏、设置它的样式等。 应用程序向导”生成的默认 OnCreate 执行以下工具栏任务: 1.调用 CToolBar 对象的 Create 成员函数来创建基础 CToolBarCtrl 对象。 2.调用 LoadToolBar 来加载工具栏资源信息。 3.调用函数来启用停靠、浮动和工具提示。 */ class CMainFrame : public CMDIFrameWnd { // ... // Implementation // ... protected: // control bar embedded members CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; // Generated message map functions protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); DECLARE_MESSAGE_MAP() }; int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) return -1; //框架类中m_wndMyToolBar成员变量先调用CreateEx函数,再调用LoadToolBar函数 if (! m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || ! m_wndToolBar.LoadToolBar(IDR_MYTOOLBAR)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } //调用CToolBar中的成员函数设置工具栏可停靠的位置 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); //调用框架类中的成员函数设置哪里可以被停靠 EnableDocking(CBRS_ALIGN_ANY); //Points to the control bar to be docked. DockControlBar(&m_wndToolBar); return 0; }
demo2:停靠和浮动工具栏
C++代码
demo2 (停靠和浮动工具栏) /* 如果使用“应用程序向导”来生成应用程序的主干,向导将要求您选择是否想要可停靠的工具栏。 默认情况下,“应用程序向导”生成代码来执行将可停靠工具栏放置在应用程序中所需的三个操作: 1.在框架窗口中启用停靠。 2.为工具栏启用停靠。 3.停靠工具栏(靠向框架窗口)。 如果这些步骤中的任何一个缺少,应用程序都将显示标准工具栏。 后两个步骤对应用程序中的每一个可停靠工具栏都必须执行。 */ CFrameWnd::EnableDocking()//在框架窗口中启用停靠 /* 若要将工具栏停靠到某个框架窗口,则必须启用该框架窗口(或目标)以允许停靠。 这可通过使用 CFrameWnd::EnableDocking 函数来实现,该函数采用一个 DWORD 参数,这是一组指示框架窗口的哪一个边接受停靠的样式位。 如果一个工具栏即将停靠并且有多个边可以停靠,则在传递给 EnableDocking 的参数中指示的边按以下顺序使用:顶边、底边、左边、右边。 如果希望能够将控制条停靠在任意位置,请将 CBRS_ALIGN_ANY 传递给 EnableDocking。 */ CControlBar::EnableDocking()//为工具栏启用停靠 /* 准备好停靠目标后,必须以相似的方式准备工具栏(或源)。为想要停靠的每一个工具栏调用 CControlBar::EnableDocking,指定工具栏应停靠的目标边。如果在 CControlBar::EnableDocking 调用中所指定的边没有一个与框架窗口中为停靠启用的边匹配,则工具栏无法停靠(它将浮动)。 工具栏一旦浮动,将保持为浮动工具栏,不能停靠到框架窗口。 如果希望工具栏永久浮动,请调用参数为 0 的 EnableDocking。然后调用 CFrameWnd::FloatControlBar。工具栏将保持浮动,永远不能在任意位置停靠。 */ CFrameWnd::DockControlBar()//停靠工具栏 /* 当用户试图将工具栏放置在允许停靠的框架窗口某一边时,框架调用 CFrameWnd::DockControlBar。 另外,可以随时调用该函数将控制条停靠在框架窗口中。这通常在初始化过程中完成。 框架窗口的具体某个边上可停靠多个工具栏。 */ CFrameWnd::FloatControlBar()//浮动工具栏 /* 从框架窗口分离可停靠工具栏称为浮动工具栏。调用 CFrameWnd::FloatControlBar 来执行该操作。指定要浮动的工具栏、将放置的点以及决定浮动工具栏是水平还是垂直的对齐样式。 当用户拖动工具栏离开停靠位置并将它放置在一个未启用停靠的位置时,框架调用该函数。 这可以是框架窗口的内部或外部的任意位置。同 DockControlBar 一样,也可以在初始化过程中调用该函数。 可停靠工具栏的 MFC 实现不提供一些支持可停靠工具栏的应用程序中有的扩展功能。诸如可自定义工具栏这样的功能不提供。 */ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { //... //部分代码略 //... //调用CToolBar中的成员函数设置工具栏可停靠的位置 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); //调用框架类中的成员函数设置哪里可以被停靠 EnableDocking(CBRS_ALIGN_ANY); //Points to the control bar to be docked. DockControlBar(&m_wndToolBar); return 0; }
demo3:点击菜单项显示和隐藏工具栏
C++代码
demo3 (点击菜单项显示和隐藏工具栏) CFrameWnd::ShowControlBar//显示和隐藏菜单项 void ShowControlBar( CControlBar* pBar, BOOL bShow, BOOL bDelay ); void CMainFrame::OnViewNewtool() { ShowControlBar(&m_newToolBar,!m_newToolBar.IsWindowVisible(),FALSE);//控制显示和隐藏 } void CMainFrame::OnUpdateViewNewtool(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_newToolBar.IsWindowVisible());//为菜单项打标记 }
MFC扩展类库
在平时练习的时候我们可以自己手动进行,但是一旦接受一些项目,应用程序开发等,对界面的要求就会高出许多。这时候就有必要借助这些“半成品”实现界面美化提升效率。这里简单介绍一下,具体可点进去查看每个的详情以及教程,案例!
Toolkit Pro:
Codejock软件公司的Xtreme Toolkit Pro是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。(点这下载)
BCGControlBar
BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库,使您可以创建具有完全自定义选项(功能区、可自定义工具栏、菜单等)以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件,例如图表、日历、网格、编辑器、甘特图和许多其他控件。
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。可以轻松地集成到你的应用程序中,并为你节省数百个开发和调试时间。(点这下载)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢