SDI(单文档界面)
- 格式:doc
- 大小:46.50 KB
- 文档页数:2
1.Windows 窗体布局选项如果曾经使用过基于 Windows 的应用程序,您可能已注意到并非所有用户界面的外观或行为都相同。
有三种主要样式:∙单文档界面 (SDI)∙多文档界面 (MDI)∙资源管理器样式界面SDI 界面的一个示例是 Microsoft Windows 中包括的“写字板”应用程序。
在“写字板”中,只能打开一个文档;必须先关闭一个文档才能打开另一个文档。
写字板,单文档界面 (SDI) 应用程序Microsoft Excel 是 MDI 界面的一个示例;它允许同时显示多个文档,每个文档在其自己的窗口中显示。
通过是否在程序中包含“窗口”菜单且该菜单中具有用于在窗口或文档之间进行切换的命令,即可识别 MDI 应用程序。
Microsoft Excel,多文档界面 (MDI) 应用程序在确定哪种界面样式最适合时,需要考虑应用程序的用途。
处理保险索赔的应用程序可能适合于 MDI 样式,因为职员可能一次处理多份索赔或需要对两份索赔进行比较。
而日历应用程序最适合于 SDI 样式,因为需要一次打开多个日历的可能性不大;在极少数情况下需要这样做时,可打开 SDI 应用程序的第二个实例。
SDI 样式是 Windows 应用程序较常用的布局选项。
创建 MDI 应用程序时有许多独特的注意事项和技巧,这些注意事项和技巧将在多文档界面 (MDI) 应用程序中讲述。
第三种界面样式“资源管理器样式”界面的使用也日益广泛。
资源管理器样式界面是包含两个“窗格”或区域的单个窗口,通常由左侧的树或分层视图以及右侧的显示区域组成,与“Mi crosoft Windows 资源管理器”一样。
此类界面适合于定位或浏览大量的文档、图片或文件。
Windows 资源管理器,资源管理器样式界面。
MFC类库是一个层次结构,主要有CObject类、应用程序类、可视对象类、绘图和打印类、通用类、数据库类、Internet和网络类、OLE类。
(1)CObject类CObject类是MFC的抽象基类,MFC中的大多数类是从CObject类派生出来的。
它是MFC 中多数类和用户自定义的根类,该类为程序员提供了希望融入所编写程序的许多公共操作,包括对象的建立和删除、串行化支持、对象诊断输出、运行时信息以及集合类的兼容等。
CObject类的声明在Afx.h中。
(2)应用程序结构类该类主要用于构造框架应用程序的结构,提供了多数应用程序公用的功能.编写程序的任务是填充框架,添加应用程序专有的功能。
1.应用程序和线程支持类CWinThread类是所有线程的基类,窗口应用程序类CWinApp类就是从该类中派生来的。
每个应用程序有且只有一个应用程序对象,在运行程序中该对象和其他对象相互协调,该对象从CWinApp中派生出来。
该类封装了初始化、运行、终止应用程序的代码。
2.命令相关类CCmdTarget类是CObject的子类,它是MFC所有具有消息映射属性的基类。
消息映射规定了当一对象接收到消息命令时,应调用哪个函数对该消息进行处理。
程序员很少需要从CCmdTarget类中直接派生出新类,往往都是从它的子类中派生出新类。
如窗口类(CWnd)、应用程序类(CWinApp)、文档模板类(CDocTemplate)、视类(CView)及框架窗口类(CFrameWnd)等。
3.文档类文档对象由文档对象模板创建,用于管理应用程序的数据。
视图对象表示一个窗口的客户区,用于显示文档数据并允许读者与之交互。
有关文档/视结构的类如下:①CDocTemplate类:文档模板的基类。
文档模板用于协调文档、视图和框架窗口的创建。
②CSingleDocTemplate类:单文档界面(SDI)的文档模板。
③CMultiDocTemplate类:多文档界面(MDI)的文档模板。
AUTOCAD中几个特殊的系统变量或命令AUTOCAD的版本一跃千里,版本已更新到2004,平时在使用中有些变量或命令如能熟练掌握,也可为我们解决许多意想不到的麻烦。
下面就来详细介绍几个。
1、MBUTTONPAN 系统变量控制定点设备第三按钮或滑轮的动作响应。
0 支持菜单 (.mnu 文件定义的动作1 当按住并拖动按钮或滑轮时,支持平移操作默认为平移操作。
IntelliMouse 或其他滑轮鼠标IntelliMouse 是一种双按钮鼠标,在两个按钮之间有一个滑轮。
左右按钮的功能和标准鼠标一样。
滑轮可以转动或按下。
不用任何 AutoCAD 命令而直接使用滑轮就可以缩放和平移图形。
默认情况下,缩放比例设为 10%;每次转动滑轮都将按 10% 的增量改变缩放级别。
ZOOMFACTOR 系统变量控制滑轮转动(无论向前还是向后)的增量变化。
其数值越大,增量变化就越大。
下表列举了 AutoCAD 支持的 IntelliMouse 动作。
2、MINSERT 命令在矩形阵列中插入一个块的多重引用。
使用 MINSERT 命令插入的块不能被分解。
注意:在插入过程中,不能象使用INSERT 命令那样在块名的前面用星号来分解块对象。
在指定插入点位置之前,插入点处的选项将预置块的比例和旋转角。
对于使用 1 和 0 之外的比例因子和旋转角来拖动块,预置非常有用。
其它相关命令:INSERT、ADCENTER、REFEDIT。
3、XPLODE 命令将合成对象分解成它的部件对象。
合成对象由多个(一个以上)AutoCAD 对象组成。
例如,块就是一个合成对象。
可以同时分解多个合成对象并分别修改每个对象的颜色、图层和线型,或者全局性的修改整个选择集。
可以指定颜色、图层线宽和线型,或者从被分解的对象中继承这些属性。
可以使用绝对值相等的缩放比例分解块。
绝对值相等表示如果将缩放比例值前的负号 (- 删除,则比例值相等。
例如,可以使用值分别为 1、-1、1 的X、Y、Z 比例因子分解块,包括被镜像的块。
原创]C++builder组件属性详解尽管C++Builder的组件种类繁多,每种组件又都有许多不同的属性,但是在这些众多的属性中有相当一部分是大多数组件所共有的。
因此我们应当主要掌握这些共有组件。
在设计时设置属性一般是通过属性窗口来进行的。
在属性窗口设置组件属性的操作步骤如下:1)打开相应对象的属性窗口。
2)从属性列表中选定属性名称。
3)在属性窗口的右列输入或选择新的属性值。
注意:有些属性在设置值右侧有…按钮,单击该按钮会出现相应的设置对话框,设置值需要在对话框中选定。
在代码中设置组件属性的方法是:对象名称->属性名称=设置值;下面我们来介绍一些主要组件的主要属性。
窗体form的属性:1.Caption:标题。
是窗体和各种可视化控件的共有属性,用来指定窗体标题栏中的说明文字,默认与控件名相同,但程序员可以在对象监视器和代码中修改。
在代码中修改的格式为:Form->Caption = "da";// da表示程序员输入的标题。
通常,对于Windows系统中的多文档界面( MDI )应用程序,当主框架窗口中的子窗口以最大化显示的时候,应用程序的标题栏中显示的内容为“ <应用程序名> - <打开的文档名>”;当子窗口以非最大化窗口显示的时候,主框架窗口中只显示应用程序的名称,子窗口有自己的标题栏,其中显示该窗口打开的文件名。
所以,当窗体的显示方式发生了改变后,应该立即改变标题栏中的内容。
2.Name:变量名。
是窗体和所有控件的共有属性,系统给予其默认名字,但程序员可以在对象监视器修改,不要在代码中修改。
通常,应该在系统开发的设计阶段就将整个工程中所有窗体的名称确定,然后在编程阶段,根据设计文档修改窗体的Name属性。
一般情况下,不要在程序运行期间通过代码修改Name属性。
3.Enabled:可操作性。
决定了对象在运行时是否允许用户进行操作。
它是逻辑型:true表示允许用户操作并可对其操作作出响应;false表示禁止用户操作,此时对象呈灰色。
mfc单文档例子以下是一个简单的MFC单文档(SDI)应用程序的示例:1. 首先,创建一个新的MFC应用程序项目。
在Visual Studio中,选择“文件”菜单,然后选择“新建”->“项目”。
在“新建项目”对话框中,选择“MFC应用程序”,然后输入项目名称和位置,并单击“确定”。
2. 在“MFC应用程序向导”中,选择“单文档”作为应用程序类型,并单击“完成”按钮。
3. 在生成的代码中,找到`CMainFrame`类。
这是应用程序的主窗口类。
4. 在`CMainFrame`类的`OnCreateClient`函数中,添加以下代码:```cppvoid CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext pContext){// 创建视图窗口m_(_T("My View"), WS_CHILD WS_VISIBLE WS_BORDERWS_HSCROLL WS_VSCROLL, CRect(0, 0, 800, 600), this,ID_VIEW_WIN);}```5. 在`CMainFrame`类的`OnCreate`函数中,添加以下代码:```cppBOOL CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;// 创建工具栏和状态栏CToolBarCtrl tb;CRect rect(0, 0, 800, 24);(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPERCBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPER CBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(this);m_(0, ID_VIEW_STATUSBAR, SBPS_STRETCH, 0);m_(1, ID_VIEW_STATUSBAR2, SBPS_STRETCH, 0);m_(2, ID_VIEW_STATUSBAR3, SBPS_STRETCH, 0);m_(0, SBPS_NORMAL);m_(1, SBPS_NORMAL);m_(2, SBPS_NORMAL);m_(0, _T("Ready"));m_(1, _T("Ready"));m_(2, _T("Ready"));return TRUE;}```6. 编译并运行应用程序。
简述窗体的概念
窗体是指在计算机界面中,用于展示和交互处理的显示区域。
它是构成图形用户界面(GUI)的基本元素,通常呈现矩形或其他规则的几何形状,用户可以通过鼠标或键盘等输入设备与之交互。
窗体在计算机系统中扮演着重要的角色,它能够装载各种程序和应用程序,并将它们的界面呈现给用户。
一个窗体通常由标题栏、边框、菜单栏、工具条、内部控件、滚动条和关闭按钮等组成,用户可以通过这些元素进行各种操作,例如最小化、最大化、移动、调整大小、关闭、打开菜单等等。
窗体可以分为单文档界面(SDI)和多文档界面(MDI)两种。
SDI是指一个窗体仅显示一个文档,而MDI则允许在一个窗体下面显示多个文档,一般用于需要同时操作多个文件的应用程序中,例如文本编辑器、工程管理器等。
Windows操作系统中的窗体通常由钩子函数控制,这些钩子函数负责捕获和处理系统和用户交互事件,确保窗体的正常运行。
使用窗体可以简化用户的操作,提高应用程序的易用性和交互性,同时也可以使得程序更具美感和可读性。
在现代GUI框架中,使用窗体一般需要使用高级编程语言或开发工具,例如C#、、Java、Python、Qt、WPF等,这些语言和工具提供了丰富的控件库和开发工具,使得使用窗体更加便捷和高效。
此外,随着移动设备和平板电脑等多种终端设备的普及,窗体的设计也需要考虑兼容性和自适应性等因素,以适应
不同的屏幕尺寸和终端设备。
总之,窗体是图形用户界面中最基本的元素之一,它是应用程序提供交互和显示的重要场所,可以大大提高应用程序的易用性和交互性,同时也是GUI开发的基础知识之一。
英文全称Single Document Interface
如果使用过基于 Windows 的应用程序,也许已经注意到不是所有用户界面看上去或操作起来都一样。
用户界面样式主要有两种:单文档界面(SDI) 和多文档界面(MDI)。
SDI 界面的一个示例就是Microsoft Windows 中的WordPad(记事本)应用程序(图 6.1)。
在WordPad 中,只能打开一个文档,想要打开另一个文档时,必须先关上已打开的文档。
图记事本,一个单文档界面(SDI) 应用程序
象Microsoft Excel 和 Microsoft Word for Windows 这样的应用程序就是MDI 界面;它们允许同时显示多个文档,每一个文档都显示在自己的窗口中(图 6.2)。
按照是否包含有能在窗口或文档之间进行切换的子菜单的Windows 菜单项,就能识别出 MDI 应用程序。
图Microsoft Excel,一个多文档界面 (MDI) 应用程序
要决定哪种界面样式最好,需要看应用程序的目的。
一个处理保险索赔的应用程序可能要用多文档界面MDI 样式,一个职员很可能会同时处理一个以上索赔,或者需要对两个索赔进行比较。
另一方面,日历程序最好设成SDI(单文档界面)样式,因为不大需要同时打开一个以上日历;在极少的情况下,可以再打开一个单文档界面应用程序的实例。
SDI 样式更常用,《程序员指南》中的大多数实例都采用SDI 应用程序。
关于创建 MDI 应用程序有一些需要单独考虑的问题和技巧,放在本章后面“多文档界面 (MDI) 应用程序”一节。
除了以上两个最常用的界面样式SDI 与MDI 外,第三种界面样式变得越来越流行,这就是资源管理器样式的界面(图 6.3)。
资源管理器样式界面是包括有两个窗格或者区域的一个单独的窗口,通常是由左半部分的一个树型的或者层次型的视图和右半部分的一个显示区所组成,如在Microsoft Windows 的资源管理器中所见到的那样。
这种样式的界面可用于定位或浏览大量的文档、图片或文件。
图Windows 的资源管理器,资源管理器样式的界面
除了本章所附的 MDI 与SDI 应用程序示例,实用程序向导还提供了一种比较界面样式差别的方法。
可以用向导来为每一种样式生成一个框架,然后观察它生成的窗体与代码。
此外,在AUTO CAD绘图程序中,有SDI 口令,通过该口令可以设置CAD程序是当文档显示或多文档显示。
SDI有0、1两个值。
当设置为0时,为单文档显示;设置为1时为多文档显示,即每次打开一个图形文件,都会启动一次CAD程序。