创建类似Visual Studio的界面

对话栏(CDialogBar) 对话栏(CDialogBar) 对话栏是工具栏和非模态对话框相结合的产物。MFC为对话栏提供了CDialogBar类,该类派生于CControlBar类。对话栏与对话框类似,包含标准的Windows控件,并且可以通过创建对话模板来表示对话栏。 一:对话栏主要方法 二:对话栏的应用实例 (l)创建一个基于单文档的应用程序。 打开VS2019——>新建——>项目 把项目设置为使用【多字符集】 (2):添加资源——>新建一个IDD_DIALOGBAR (3):在DialogBar中添加控 阅读详情

                                     

 

Visual Studio界面

Visual Studio的界面如下,很多人喜欢这种界面风格,尤其是主框架下的两个活动窗口:左侧为嵌套Tab控件的浮动窗口,底部为嵌套信息输出窗口的浮动窗口。这种浮动窗口类似于可浮动的工具栏,可以停靠在主窗口的任意一边,也可以浮动在主窗口内的任何位置,窗口的大小可以随鼠标的拖动而改变,还可以关闭和重新打开。

在MFC中,具有浮动性能的窗口都由一个共同的基类--控制条类CControlBar类派生,如工具栏类CToolBar、状态栏类CStatusBar和对话条类CDialogBar都是这样的。在这些派生类中,根据需要对CControlBar的默认属性作了修改,并增加了自己的特性,如在CStatusBar中限定了状态栏只能水平排列,而不能垂直排列。可以将这些在CcontrolBar基础上派生的类统称为控制条窗口。控制条窗口通常是一个与视图窗口处于同一级的框架类的子窗口。它通过获得父框架窗口的客户区(Client Area)的位置信息来计算自己的尺寸和位置,并通知父框架窗口剩下的客户区的位置和尺寸。控制条之间名于互相覆盖,且不会遮盖视力窗口。

注意:容易被忽视的一点,控制条能够沿框架窗口停靠取决于框架窗口沿边框四周创建的4个统一的控制条,即停靠栏。没有控制条来停靠时,停靠栏沿应用程序主窗口缩小到不可见,当控制条停靠在边框时,停靠栏就展开并包围这些控制条。
CFrameWnd的成员函数EnableDocking()沿框架窗口创建这4个停靠栏。但是,停靠功能不是自动地被MFC启动的,在CMainFrame::OnCreate()中,需要调用EnableDocking()才能进行工具栏的停靠操作。几个与停靠相关的函数是:
CFrameWnd::EnableDocking()  沿框架四周创建停靠栏。
CControlBar::EnableDocking()  设置控制条的停靠属性
CFrameWnd::DockControlBar()   将一个控制条停靠到一个停靠栏中

如CMainFrame::OnCreate()中关于工具栏的停靠代码
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
  .....
    //允许工具栏停靠
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

    m_wndToolBar.SetWindowText("Standard Tool");

    //在主框架窗口四周创建停靠栏
    EnableDocking(CBRS_ALIGN_ANY);

  //将控制条停靠到停靠栏,默认为停靠到上边
  DockControlBar(&m_winToolBar);
或  DockControlBar(&m_winToolBar,AFX_IDW_DOCKBAR_TOP);
    ......
}

CCoolDialog类

创建这种类型的窗口,可以自己用CControBar类开发。当然,有现成的为什么不用呢?这里介绍Mr. Oliver Smith开发的CCoolDialogBar类。

Oliver Smith 的程序库中共有5个类:

1. CCoolDialogBar是最基本的类,直接从CControlBar中派生出来的,创建和管理停靠窗口。
2. CTabSheetDockBar实现左侧Tab窗口的创建和管理,从CCoolDialogBar派生出来。在DockTool.h中声明
3. CMessageViewDockBar实现底端窗口的创建和管理,从CCoolDialogBar派生出来。在DockTool.h中声明
4. CTabSheet实现左侧停靠窗口内的Tab创建和管理,它的基类是CTabCtrl。
5. COutputView实现在底部停靠窗口内字符串的输出管理,基类是SCrollView。

使用方法:
Oliver Smith的程序可以编译成一个DLL库。包含DockTool.dll,DockTool.lib和DockTool.h三个文件。将它复制到程序目录下,并导入到工程中。
(1)在CMainFr

VS2019使用C++创建winform界面 在VS中新建CLR项目实现winform在C++中的使用 阅读详情

相关推荐

掌握CDialogBar类实现:自定义Windows界面设计

本文还有配套的精品资源,点击获取 简介:在Windows应用开发中, CDialogBar 类允许开发者将对话框嵌入工具栏中,创建功能丰富的用户界面。本篇文章深入探讨 CDialogBar 类的应用,并指导如何创建和使用自定义的对话框工具栏,从而提高应用的用户体验和界面集成度。 1. MFC库和CDialogBar类 MFC(Mi...

weixin_42510201的博客 1515

CDialogBar类应用

帮助大家熟悉MFC类的使用!

仿VS界面Demo

这是一个仿VS界面开发的代码,可以实现控件动态添加,改变控件位置,大小

轻松实现类VC IDE界面

轻松实现类VC界面作者:浙江省温岭电信局 王骏下图是一个类似VC的界面,左边、底下有两个可浮动、可变大小的控制窗口。许多朋友都希望在自己的程序中实现类似界面,因为此种类型的界面用途很广、通用性很强,所以笔者总结了一下实现的步骤,辑此一文,并提供源代码供大家参考!下载本文示例工程 44.3K (最新更新:2004年2月8日) 一、实现原理图中两个窗口的实现类是从CControl

MichealHu的专栏 2488

Visual C++/MFC入门教程(四)

在以后的章节4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar会给出使用的方法。  4.C Dialog Bar Dialog Bar类似一个静态的附在框架窗口上的对话框,由于Dialog Bar可以使用资源编辑器进行编辑所以使用起来就很方便,在设计时就可以对Dialog Bar上的子窗口进行定位。用于显示一些提示字符。MFC中使用CD

backapace的专栏 1774

在VS2012下创建类似Visual Studio界面的方法

http://www.docin.com/p-1362446009.html?_t_t_t=0.5272532470989972

form88的专栏 1965

Qt中使用QDockWidget实现类似VS界面布局

在常用的编程工具中,VS是以其功能强大深受大家的喜爱,下面通过QT实现类似于VS界面界面,可以拖动和调整。 先看一下效果图: 主要是利用以下两个函数: void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation); 此函数的功能是把两个dock...

wb175208的专栏 8893

轻松创建Visual Studio样式的应用程序界面,第二招赶紧Get!

本系列教程致力于教大家如何创建流行的应用程序UI,这种经典布局包含代表主要工作区域的选项卡式或 MDI 文档、表单侧面的面板和顶部的主菜单,类似于 MicrosoftVisual Studio中的 UI 。 获取工具下载 - DevExpress WinForm v21.1 DevExpress技术交流群4:715863792欢迎一起进群讨论 在这一部分中,您将学习如何在单个应用程序中使用Document Manager组件和Dock Manager(停靠管理器),停靠管理器提供对其拥有...

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1779

C#利用dockPanel实现类似VS 2008界面的应用程序

C#利用dockPanel实现类似VS 2008界面的应用程序 界面如图所示: 我的资源里有源代码: http://download.csdn.net/source/1329343

技术代码资料库 247

WPF實現VS樣式停靠窗體效果

使用WPF解決方案,可以實現面板的停靠功能

一个完美的CDialogBar实例

一个完美的CDialogBar实例,VC++2008,mfc框架并展示了一个CAD软件的基本界面

如何快速上手Qt-Advanced-Docking-System:10分钟搭建Visual Studio风格界面

想要为你的Qt应用程序添加像Visual Studio那样灵活、专业的界面布局吗?Qt-Advanced-Docking-System(简称ADS)正是你需要的终极解决方案!这个强大的开源库让开发者能够轻松创建可停靠、可拖拽的现代化界面,大大提升应用程序的用户体验。无论你是Qt新手还是有经验的开发者,都能在10分钟内掌握这个强大工具的基本用法。 ## 🚀 什么是Qt-Advanced-Dock

gitblog_00485的博客 374

WPF之模仿Visual Studio效果的框架界面

方式:使用AvalonDock.dll控件。 AvalonDock有如下主要元素: 1.DockingManager: DockingManager是AvalonDock中最核心的控件标签,容纳所有AvalonDock标签。 2.ResizingPanel: 用于整体界面布局,方向有横向和纵向。 3.DocumentPane:通常用于包含文字编辑的标签,也可以包含Dockabl

卢冠道(夜空*星星)的专栏 1万+

开发类似vs的界面_Visual Studio(VS)简介及与C#的关系

Visual Studio(VS)--简介及与C#的关系简单来说visual studio.net 是一个大的框架平台,是一个编程环境, 就像是一个零件库,有很多编程语言可以在这里使用. 如:vb c# c++ 等 c#是一门独立的语言,建立在visual studio.net 的基础上,有winform的桌面软件开发和 web开发,C#可以说是visual studio的母语,(C#之...

weixin_39549936的博客 1305

CDialogBar的创建

此文档基于能巴的CDialogBar的使用方法(https://www.cnblogs.com/mysunnyday/archive/2012/02/07/2341867.html)修改补充。 创建CDialogBar对话框主要分为如下几个步骤: 一、创建对话框资源; 二、为对话框添加新的派生类; 三、修改派生类; 四、修改初始化函数; 五、在框架类中实现派生类的对象化。 下面我将根...

皮皮狗 1469

mfc的CDialogBar

一、创建DialogBar的派生类 首先,创建对话框资源:在对话框资源编辑器内生成一个Dialog资源,并将其风格(Style)属性必须设置为Child,不能设置为Overlapped或Popup,否则运行肯定出错;至于边界属性则随用户自己喜欢,一般都是选择None。其余属性也随用户选择,一般没有特殊要求还是选择默认的好。 其次,创建基于CDialog的派生类:打开ClassWizard,为以

dadaadao的专栏 7527
上一篇: VC中常用的20种方法
下一篇: 如何控制设备驱动程序的加载顺序
aasa2
博客等级 码龄25年 4粉丝 25原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值