《Visual_C++程序设计教程》对话框设计和Windows常用控件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.静态文本控件(CStatic) 静态文本控件用来在屏幕上显示字符串,一般不响 应消息,在运行过程中不和用户发生任何关系。当 把矩形范围定位好之后,就可以直接输入文本。该 控件的一个常用属性是标题(Caption)属性,用来 设置在控件中显示的文本。在很多情况下,对话框 中的一些说明性质的文字均可以用静态文本进行输 出。管理静态文本控件的MFC类是CStatic类。
4.3.2 添加Windows控件

控件的创建方法有两种,一种是在对话 框中指定控件,即将控件的父窗口指定 为对话框,当程序启动该对话框时, Windows系统自动为对话框创建控件, 当关闭对话框时,Windows所创建的控 件也随之被撤销。另一种是将控件看作 是任意窗口的子窗口,通过调用相应的 创建函数来实现。
4.3.3 修改Windows控件属性

1.控件ID 每个控件都有一个ID标识,系统给添加的每个 控件指定了一个默认的ID标识,用户可以根据 需要对其进行修改,以便更清楚地表达出控件 的作用。控件ID以IDC_开头,命名ID时最好包 括控件类型,例如,IDC_BUTTON前缀用于按 钮,IDC_EDIT前缀用于编辑框。ID可以由字 母、数字及下划线字符组成,且必须以字母或 下划线字符开头。MFC约定ID中的字母全部大 写。


2.编辑框控件(CEdit) 编辑框控件是一个让用户从键盘输入和编辑文字的矩形窗口。 同时,用户也可以使用编辑框控件来编辑或修改简单的文本 文件。编辑框一般和静态文本控件一起使用,当它获得焦点 时,框内会出现一个闪动的插入符。 3.按钮控件(CEdit) 在Windows中按钮是随处可见的,其中常见的按钮有3种类型: 按键按钮、单选按钮和复选框。按键按钮通常可以立即产生 某个动作,执行某个命令,因此也常被称为命令按钮。单选 按钮的外观是一个圆圈,当它被选中时,单选按钮中就标上 一个黑点。复选框的外观是一个空心方框,当它被选中时, 复选框中就加上一个对勾标记,通常复选框只有选中和没有 选中两种状态。

对话框的属性有“常规”、“样式”、“更多样式”、 “扩展样式”和“更多扩展样式”5个部分,这里只介 绍最常用的“常规”属性,其中各个属性说明如表4-2 所示。

根据需要设置各项属性即可。
4.2.2 创建对话框类

在创建了对话框模板后,就可以利用 ClassWizard来创建从CDialog派生且连接到 对话框模板的对话框类了,并可以添加与控 件相关联的成员变量。需要注意的是,无论 在创建对话框类之前还是之后,都可以向对 话框资源添加控件,但只有在创建对话框类 之后,才可以为对话框添加与控件关联的成 员变量和消息处理函数。

4.列表框控件(CListBox) 列表框是一种输入控制,它可以使用户从所列的表 项中进行选择。用户可以在其中选择一个或多个项, 这与单选按钮和复选框的功能有些相近,但不同的 是,列表框中项的数目是灵活变化的,程序运行时 可往列表框中添加或删除某些项。并且,当列表框 中项的数目较多不能一次全部显示时,还可以通过 滚动条来拓展显示范围。
4.2 创建对话框程序





在Visual C++ 6.0中创建对话框应用程序一般分为4 个步骤: (1)利用资源编辑器创建一个对话框模板,加入需 要的控件并设置对话框和控件的属性。 (2)利用ClassWizard创建与对话框资源对应的 CDialog的派生类。 (3)编写创建对话框的代码,通常在响应某个菜单 项或者工具栏按钮时弹出对话框。 (4)为对话框的控件添加响应的消息处理。
4.2.3 了解对话框常用函数

CDialog类是对话框的基类,用户在程序中创 建的对话框类一般都是CDialog类的派生类。 CDialog类从CWnd类派生而来,所以它继承 了CWnd类的成员函数,用户在编写对话框 程序时除了使用CDialog类的成员函数之外, 还可以调用CWnd类的一些成员函数进行对 话框的管理。对话框常用的成员函数主要有 以下几个:

3.制表站属性 该属性控制利用键盘Tab键获取对话框窗口的 操作焦点,获得焦点的控件能够响应当前的 键盘输入。控件获得焦点后,按Enter键就执 行控件所对应的命令。任何对话框中都只能 由一个控件拥有焦点。

4.组属性 组属性用来对一组控件进行编组,用户可以用键盘 方向键在该组控件内切换焦点。组属性常用于单选 按钮和复选框,在同一组内的单选按钮具有互斥的 特性,即在这些单选按钮中只能有一个是选中的。 如果一个控件具有Group属性,则这个控件以及按 Tab顺序紧随其后的所有控件都属于一组,直到遇 到另一个有Group属性的控件为止。

2.标题属性 静态文本、组框、命令按钮以及单选按钮等控 件都可以显示标题,用来对控件进行文字说明。 控件标题中的字符“&”使紧跟其后的字符附带 下划线,按Alt+下划线上的字符将启动该控件。 若控件是一个单选按钮,则按Alt+下划线上的 字符将选择该按钮;若控件是命令按钮,则将 激活按钮命令;若控件是一个静态文本,则将 激活紧随其后的下一个控件。
(2)单击“新建”按钮可以创建一个资源类型列表中指定类 型的新资源;单击“定制”按钮可以创建资源类型列表中 没有的新类型的资源;单击“导入”按钮可以将外部已有 的位图、图标等资源添加到当前应用程序中。 (3)修改对话框属性。在对话框模板的空白处右击,从弹出 的快捷菜单中选择“属性”命令,弹出如图4-3的“对话属 性”对话框。


2.对话框分类 对话框的分类主要有以下两种:模式(Model)对话框 和非模式(Modeless)对话框。 对于模式对话框,在对话框关闭之前,用户无法在 同一应用程序的其他地方进行工作,如Microsoft Word中的“打开文件”对话框。而对于非模式对话 框,在它仍然保留在屏幕上的同时,用户可以在同 一应用程序的其他窗口中进行工作,如Microsoft Word 中的“查找与替换”对话框,在对话框保留在 屏幕的同时,还可以进行光标的重定位及其他操作。




2.调用创建函数添加控件 如果希望在程序的运行过程中在对话框中添加控件,一般需要先声明一个 MFC控件类的对象,然后调用Create()函数和其他成员函数显示控件和 设置属性。 Create()是CWnd的成员函数,其原型如下: virtual BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, Const RECT &rect, CWnd *pParentWnd, UINT nID, CCreateContext *pContext=NULL );




4.OnCancel 该函数在单击对话框中的“Cancel”按钮或按Esc键时由框架调用,其原型 如下: virtual void OnCancel(); 5.OnInitDialog 该重载函数用于响应WM_INTTDIALOG消息,对对话框进行初始化处理, 其原型如下: virtual BOOL OnInitDialog(); 返回值:返回非零值,输入焦点为第一个控件。若程序已显式地设置焦 点到某个控件处,则返回零。 6.OnOK 单击ID为IDOK的按钮时调用的函数,关闭对话框,并返回IDOK,其原型 如下: virtual void OnOK();



1.通过资源编辑器添加控件 打开对话框资源编辑器弹出如图48所示的控 件工具栏之后,就可以方便地在对话框中添加 各种控件了。 (1)单击添加:在控件工具栏上单击要添加 的控件后,将鼠标移动到对话框模板上,此时 鼠标光标变成了“+”形状,在对话框上再次单 击鼠标,控件就添加到对话框模板上了。 (2)拖动添加:拖动要添加的控件到对话框 模板上,然后释放鼠标,也可以添加控件。
4.4.1 设置Windows控件的大小

如果要设置控件的大小,可以利用控件周围 的尺寸调整点实现,如图4-13所示,可看到 控件周围有8个调整点。特别地,对于静态 文本控件,当输入标题内容时,控件的大小 会自动改变。调整控件大小的具体方法如下:



(1)单击要调整的控件并将其选中,此时控 件四周显示出尺寸调整点。 (2)把鼠标光标放在调整点上,当鼠标变为 双向箭头时,水平或垂直拖动鼠标以改变控 件的宽度或者高度。如果希望能等比例地改 变控件的宽度和高度,可以把鼠标光标放在 右下脚的调整点位置进行拖动。 (3)调整为满意大小时停止拖动即可。


5.组合框控件 组合框是列表框和编辑框的组合。在组合框中,用 户除了可以在列表中对已经存在的选项进行选择外, 还可以输入新的选项。 Windows提供了3种类型的组合框:简单组合框 (Simple)、下拉式组合框(Dropdown)和下拉式 列表框(Drop List)。简单组合框和下拉式组合框都 含有列表框和编辑框控件,只不过简单组合框的列 表框不是下拉式的,跟正常的列表框一样。下拉式 列表框则虽然有下拉式的列表,但却没有文字编辑 功能。
4.4 对控件进行排版

在实际编程中,有时会根据需要在对话框中 加入多个控件,这时就需要对控件进行适当 的排版以使对话框更加美观。控件布局可以 利用如图4-11所示的布局菜单,或者利用如 图4-12所示的控件布局工具栏来实现。要注 意的是,布局菜单和布局工具栏只有在对对 话框资源进行编辑时才有效,对其他资源进 行编辑时无效。
4.2.1 建立对话框程序框架


在MFC应用程序中添加对话框资源,通常按 下列步骤进行: (1)利用MFC AppWizard向导生成单文档 (SDI)应用程序DialogTest。选择“插 入”→“资源”命令,或使用Ctrl+R组合键 打开“插入资源”对话框。展开资源列表中 的“Dialog”项,如图4-1所示,“资源类型” 列表中列出了各种类型的对话框资源。
第4章 对话框设计和Windows常用控件
4.1 对话框应用程序介绍


1.对话框组成 对话框主要由以下两部分组成: (1) 对话框资源:定义了对话框的特性(如大小、位 置和风格等)以及对话框中每个控件的类型、位置等 属性。一般情况下,对话框资源在资源编辑器中静 态地定义,也可以用编程的方法在程序运行时动态 地创建。 (2) 对话框类:对话框类是与对话框资源相关联的, 基于CDialog类的派生类,它提供编程接口来管理对 话框。
4.3 使用Windows常用控件

为了与用户进行直观、方便、快捷的交 互,Windows操作系统提供了各种控件。 控件(Control)是一种子窗口,应用程序 用它来与其他窗口进行简单的交互。一 般情况下,在使用对话框的时候都需要 加上对话框控件,如编辑框、组合框、 按钮和单选按钮等。
4.3.1 Windows常用控件介绍




ຫໍສະໝຸດ Baidu
1.DoModal 该方法用于创建并显示一个模式对话框,其原型如下: virtual int DoModal(); 返回值:该方法返回一个整数值,该数值可以应用于EndDialog方法。如果返 回值为-1,则表示没有创建对话框;如果为IDABORT,则表示有其他错误发 生。 2.Create 该方法从对话框模板中创建一个对话框资源,其原型如下: BOOL Create(LPCTSTR lpszTemplateName,CWnd*pParentWnd=NULL); BOOL Create(UINT nIDTemplate,CWnd*pParentWnd=NULL); 3.EndDialog 该函数用于退出一个模式对话框,返回nResult作为DoModal的返回值,其原 型如下: void EndDialog(int nResult);

6.滚动条控件 滚动条是窗口中常见的对象,当窗口客户区中要显 示比其自身大的对象时,滚动条便非常有用了。这 种滚动条与窗口一同创建,位于窗口用户区旁的非 用户区,用来扩展用户区的显示范围,它被称为标 准滚动条。另外,还有一种作为控件的滚动条,这 是一个独立的窗口,具有直接的输入焦点,使用这 种滚动条的目的未必是滚动显示窗口内容。
相关文档
最新文档