4 对话框及常用控件 (第四章 对话框和常用控件)

合集下载

第四章对话框和常用控件

第四章对话框和常用控件
第二章 对话框和常用控件
2.1 对话框和控件概述
对话框是一种用户界面,它为用户提供了一种标准的处理数据的 方法。 从本质来说,对话框实际上是一个窗口,在MFC层次结构中, 对话框实际上是封装在Cdialog中,Cdialog类是CWnd类的派生类, 它是所有对话框的基类 对话框由两部分组成:对话框资源和对话框类。 控件是在系统内部定义的用于和用户交互的基本单元。
2.8.3 列表框
1. 列表框的风格和消息 按性质来分,列表框有单选、多选、扩展多选以及非选四种类型
图 不同类型的列表框
2.8.3 列表框
当列表框中发生了某个动作,如用户双击选择了列表框中某一项 时,列表框就会向其父窗口发送一条通知消息。
表 列表框的通知消息
2.8.3列表框
列表框的项除了用字符串来标识外,还常常通过索引来确定。索 引表明项目在列表框中排列的位置,它是以0为基数的,即列表框中 第一项的索引是0,第二项的索引是1 (1) 添加列表项
2.2 对话框的常用操作
1.创建对话框资源 在Visual C++中,用户通过工作区窗口可以方便的创建对话框资 源。主要有两种方式:(1)利用工作区的“Resource View”选项卡创 建对话框资源;(2)通过工作区的“ClassView”选项卡创建对话框 资源。
默认对话框 模板 默认对话框 资源ID号
2.8 工具箱中的常用控件
为了方便开发人员进行界面布局,Visual C++开发环境提供了一 个控制面板窗口,其中包含了各种常用的控件。
控件的选择 静态文本 组框 复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图 标签 复合编辑 月历 静态图片 编辑框 按钮 单选框 列表框 垂直滚动条 进展条 热键 树形视图 动画 日期选择 IP地址

对话框和常用控件

对话框和常用控件
CObject CCmdTarget CWnd
CDialog
Visual C++程序设计
CDialog类从CWnd类派生而来,所以它继承了 CWnd类的成员函数,具有CWnd类的基本功能 , 在 你 的 CDialog 类 的 派 生 类 中 可 以 直 接 调 用 CDialog类的成员函数。大部分的成员函数是虚 函数,可以在你的派生类中重载,以实现特定的 目 的 。 除 了 CDialog 类 成 员 函 数 , 类 CWnd 和 CWinApp也提供了一些成员函数用于对话框的 管理。
对话框保留在屏幕的同时,用户还可以在应用程序 其它窗口中进行工作的对话框称为非模态对话框。例 如,Word字处理软件中的Find 和Replace对话框 就是非模态对话框的一个很好的例子。
4.1.2 对话框的组成
对话框模板
对话框模板定义了对话框的特性(比如大小、位 置和风格)以及对话框中每个控件的类型和位置。 程序员不仅可以使用对话框资源编辑器建立对话框 资源模板外,还可以根据需要在内存中创建对话框 模板。当对话框模板创建后,程序员好可以在创建 和管理对话框时动态地改变部分控件的信息,如禁 止、变灰、改变标题和大小。
从程序员角度来看,对话框和控件都是窗口,查看 MSDN中的MFC组织图可以看到,它们都是从 CWnd类派生来的,这正好说明了“对话框和控件都 是窗口”。因此,对对话框的操作,经常要使用窗口 的成员函数来进行。
4.1.1 对话框的分类
1.模态对话框 在对话框关闭之前,用户无法在应用程序的其它窗
口中进行工作的对话框称为模态对话框。例如 Windows的各种应用软件中的Open File 对话框, 用户不能在应用程序的其它地方工作,直到对话框关 闭。 2.非模态对话框

对话框与通用控件

对话框与通用控件



CScrollBar* pSB = (CScrollBar*) GetDlgItem(IDC_LOYAL); pSB->SetScrollRange(nMin, nMax); pSB = (CScrollBar*) GetDlgItem(IDC_RELY); pSB->SetScrollRange(nMin, nMax);
为对话框提供控件形式的滚动条
常用于为其它控件提供标签 显示连续的AVI视频剪辑 位于某一行文本之上的按钮, 可用来控制显示文件的宽度
热键
CHotKeyΒιβλιοθήκη trl用于通过按下某一组合键
来很快的执行某些常用的操作
图象列表 列表 进度
CImageList CListCtrl
一系列图象 显示文本及其图标列表的窗口
#include "exaView.h" #include "exaDialog.h"
6.编译和测试该应用程序。
深入理解EXA应用程序
当程序中调用了DoModal时,只有在用户关闭 了对话框后,控制才能返回到程序中。只有 理解了这点,才算理解了模式对话框。当我 们开始学习无模式对话框时,就会深切地体 会到模式对话框的程序设计是多么的简单, 不过当DoModal被调用时,实际上在“幕后” 将引起一系列的动作。我们将一些调用关系 总结如下:
void CExaView::OnLButtonDown(UINT nFlags, CPoint point) { CEx06aDialog dlg; //建立对象 dlg.m_strName = "Shakespeare, Will"; dlg.m_nSsn = 307806636; dlg.m_nCat = 1; // 0 = hourly, 1 = salary dlg.m_strBio = "This person is not a well-motivated tech writer"; dlg.m_bInsLife = TRUE; dlg.m_bInsDis = FALSE; dlg.m_bInsMed = TRUE; dlg.m_strDept = "Documentation"; dlg.m_strSkill = "Writer"; dlg.m_strLang = "English"; dlg.m_strEduc = "College"; dlg.m_nLoyal = dlg.m_nRely = 50;

对话框和控件

对话框和控件

对话框的使用——使用无模式对话框
❖ 对话框的分类: ➢ 模式对话框:当对话框被弹出,用户必须在对话框中作出相
应的操作,在退出对话框之前,对话框所在应用程序的其他 操作不能继续执行。 ➢ 无模式对话框:当对话框被弹出后,一直保留在屏幕上,用 户可继续在对话框所在的应用程序中进行其他操作;当需要 使用对话框时,只需像激活一般窗口一样单击对话框所在的 区域即可激活。举例说明。
对话框资源类型表
说明
IDD_DIALOGBAR
对话条,往往和工具条停放在一起
IDD_FORMVIEW
一个表状风格的对话框,用于无模式对 话框或视图类
IDD_OLE_PROPPAGE_LARGE 一个大的OLE属性页
IDD_OLE_PROPPAGE_SMALL 一个小的OLE属性页
IDD_PROPPAGE_LARGE
对话框的使用—添加对话框资源
对话框的使用—设置对话框属性
在对话框模板处单击鼠标右键,从弹出的快 捷菜单中选择“属性”菜单项,出现“对话 框属性”界面。可以进行各项的设置。
对话框的使用—设置对话框属性
对话框的使用——添加和布局控件
控件的添加:在对话框中添加控件的方法有下列几种: 在控件工具栏中单击某控件,此时的鼠标箭头在对话框内变 成“┼”字形状;在对话框指定位置单击鼠标左键,则此控件 被添加到对话框的相应位置,再拖动刚添加控件的选择框可 改变其大小和位置。
对话框的使用—添加对话框资源
❖ 在一个MFC应用程序中添加对话框资源,通常按下列步骤进行: ❖ (1)选择“插入”->“资源”,或按快捷键Ctrl+R打开“插入资源”对话框,
在对话框中可以看到资源列表中存在Dialog项,展开该项可以看到对话框资源 的不同类型选项。

第4章 窗体和常用控件

第4章  窗体和常用控件
用途 窗体的名称,供相关程序使用 窗体标题栏显示的文本 窗体的背景颜色 窗体的前景色 窗体的边框风格 窗体是否具有控制菜单 窗体是否对用户事件作出响应 窗体的高度 窗体的宽度 窗体距屏幕左边的距离 窗体距屏幕顶部的距离 窗体是否具有最大化按钮 窗体是否具有最小化按钮 程序运行时窗体是否能够移动
VB采用了事件驱动的编程机制。当没有事件发生时,程序处 于停滞状态,只有事件发生时,程序才会运行。窗体除了 Click事件外,还有以下常见的事件。 (1)Initialize事件 当窗体第一次创建时会触发Initialize事件,一般将窗体的初 始化代码存放在该事件过程中。 (2)Load 事件 在一个窗体被装载时触发Load事件。通常,Load 事件过程用 来包含一个窗体的启动代码,例如,指定控件缺省设置值等。 (3)Unload事件 运行程序后,如果关闭窗体,就会触发Unload事件。 (4)Activate事件 当一个窗体变为活动窗体时,就会触发Activate事件。
Private Sub Option1_Click() = "宋体" End Sub Private Sub Option2_Click() = "黑体" End Sub Private Sub Option3_Click() = "楷体" End Sub
其主要属性是Caption属性,该属性用于设置在 按钮上显示的文本,命令按钮见事件是Click事件。
【例4-3】
对象属性设置如表所示。
对象名称 属性 Text1 Text Text2 Text Text3 Text Locked Label1 Caption Label2 Caption Label3 Caption Command1 Caption 属性值 空白 空白 空白 True 加数1 加数2 和 求和 说明 程序启动时文本框内无文本 程序启动时文本框内无文本 程序启动时文本框内无文本 设置该文本框不可编辑 标签框标题 标签框标题 标签框标题 命令按钮标题

4.1 对话框和常用控件

4.1 对话框和常用控件
控件的选择 静态文本 静态图片 编辑框
组框
复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图
按钮
单选框 列表框 垂直滚动条 进展条 热键 树形视图
标签
复合编辑 月历 用户定制工 具 控件工具栏和各按钮含义
动画
日期选择 IP地址 组合框的扩 展
4.1对话框的使用
(2)单个控件的选取 鼠标选取 保证选择按钮( )是被选中的,移动鼠标指针至指定的控件上,单击鼠标左键。 助记符选取 在相应的控件上右击。选择“Properties”菜单项,对话框中的“Caption”框是用来 输入控件的标题,在标题中的某个字母之前键入“&”符号,则该字母就是此控件的助记符。 Tab键选取 利用Tab键,可在对话框内的控件中进行选择。每按一次Tab键依次选取对话框中 的下一个控件,若按住Shift键,再单击Tab键则选取上一个控件。 (3)多个控件的选取 在对话框内按住鼠标左键不放,拖出一个大的虚框,释放鼠标,则被该虚框所包围的控件 都将被选取。 先按住Shift键不放,用鼠标选取控件,直到所需要的多个控件选取之后再释放Shift键。若 在选取时,对已选取的控件再选取一下,则该控件取消选取。 一旦单个控件被选取后,其四周由选择框包围着,选择框上还有几个(通常是八个)蓝色实 心小方块,拖动它可改变控件的大心小方块,这个控件称为主 要控件,而其他控件的选择框的小方块是空心的。如图。
标尺
控件工具栏
基准线
布局工具栏
打开的对话框编辑器
4.1对话框的使用
在对话框中添加和编辑控件
(1)控件添加的方法



在对话框中添加一个控件的方法有下列几种: 在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指定 位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。 在控件工具栏中单击某控件,鼠标箭头对话框内变成“十”字形状;在指定位置处单 击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。 用鼠标左键点中控件工具栏中的某控件,并按住鼠标键不放;在移动鼠标到对话框的 指定位置的过程中,会看到一个虚线框,下面带有该控件的标记;释放鼠标键。

MFC常用控件

MFC常用控件

精选2021版课件
7
CDialog类提供的函数成员
函数成员名
功能
Cdialog 构造Cdialog对象
Create 初始化CDialog对象
CreateIndirect 从内存中的对话框模板建立无模式对话 框
DoModal 显示有模式对话框
EndDialog
关闭有模式对话框
GotoDlgCtrl 把焦点移到对话框中指定的控件
精选2021版课件
14
精选2021版课件
15
列表框的基本操作
1.通用方法
通用方法用来获得和设置列表框数据的 值和属性,
所有的CListBox列表框,包括单选列表 框、多选列表框和自绘列表框等都有这 些方法。
精选2021版课件
16
2、单项选择特定方法 列表框的默认模式是单选项模式;
所有的通用方法均适用于单选项列表框。
精选2021版课件
30
使用CFileDialog对话框的步骤如下: 1.创建CFileDialog对象, CFileDialog的构造函数如下: CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY |
UpdateData(FALSE)将数据传送到对话框中,缺省的调用 发生在对话框的OnInitDialog( )创建一个有模式对话 框时。
用户可以在任何时候调用UpdateData( )进行数据交换, 该函数参数缺省值为TRUE。
示例:
显示Edit控件内容的两种方式
精选2021版课件

对话框和常用控件

对话框和常用控件

第4章对话框和常用控件对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。

对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。

控件是在系统内部定义的用于和用户交互的基本单元。

4.1对话框的使用Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。

在Visual C++6.0应用程序中,使用一个对话框的一般过程是:(1)添加对话框资源;(2)设置对话框的属性;(3)添加和布局控件;(4)创建对话框类;(5)添加对话框代码;(6)在程序中调用对话框。

例如:例1:模式对话框(为175页附加举例)所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。

平常我们所见到的对话框大多是模式对话框。

例:模式对话框(通过菜单命令弹出)1)建一个单文档(SDI)应用程序2)创建对话框模板Insert→Resource→选中Dialog→单击New拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。

3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG 4)给对话框创建类双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保证”CDialog”作为该类的基类。

5)创建菜单命令:a)打开资源编辑器的菜单项Menub)双击IDR_MAINFRAMEc)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码:void CMainFrame::OnPupdialog(){ CMyDlg MyDlg;MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该//函数将显示对话框。

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

1.什么是对话框?它分为哪两类?这两类对话框有哪些不同?
答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。

对话框分为有模式对话框和无模式对话框。

当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。

而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。

2.什么是对话框模板、对话框资源和对话框类?
答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。

对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。

对话框类用于实现对话框功能。

3.对一个对话框编程一般经过几个步骤?
答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性;
2. 定义对话框回调函数,添加控件的事件处理函数;
3. 注册对话框函数
4、什么是控件?根据控件的性质可以将控件分为几类?
答:在Windows中所用的按钮控件是用来实现一种开与关的输入。

常见按钮类型:按键按钮、单选按钮、复选框按钮。

5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件?
答:1、先点击控件,然后在对话框上单击,
2、先点击控件,然后在对话框上点住不放,画出像要的大小。

否。

6.什么是DDV/DDX技术?如何使用这种技术?
答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。

DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。

7.什么是空间的通知消息?它在编程中起哪些作用?
答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。

控件通过向父窗口发送控件通知消息来表明发生了某种事件。

8.什么是按钮控件?它有几种类型?
答:按钮控件常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的最简便的方法。

它有下压按钮、单选按钮、复选框、用户自定义按钮。

按钮控件用来表示用户的选择。

它包括命令按钮、复选框和单选框。

9、什么是编辑框控件?它有哪些功能?
答:编辑框控件是一个简易的文本编辑器,用户可以在编辑框中输入并编辑文本。

编辑框控件可以自带滚动条,显示多行文本。

10、编辑框控件中的EM-CHANGE和EN-UPDATE通知消息有何异同?
答:两者都是编辑框控件的内容改变之后发送,不同的是EN_CHANGE是在编辑框显示的正文被刷新后才发出。

11、向某一个应用程序添加一个对话框,并在对话框中添加一个按钮和一个编辑框,当单击按钮后,在编辑框中显示“你好!”字样。

12、什么是列表框和组合框?它们的通知消息有何异同?
答:列表框是一个矩形窗口,在矩形窗口中可包含一系列的字符串,也可以包含其他的数据元素。

组合框把一个编辑框和一个单选择列表框结合在了一起,用户既可以在编辑框中输入,也可以从列表框中国选择一个列表项来完成输入。

13、在例[Ex-CommCtrls]的CListBoxDlg对话框中,如何使登记的成绩是4门课程,则对话框中的控件应如何添加?代码应如何修改?
14、什么是旋转按钮的“伙伴”控件?如何设置?
答:“伙伴”控件是和旋转按钮同存在的用来共同显示和控制某一值。

在对话框模板中,可以方便地为旋转按钮指定一个伙伴控件。

首先在旋转按钮的控件属性对话框中旋转Auto buddy和Set buddy integer属性,并在Alignment栏中旋转Left或Right,然后就可以确定伙伴控件了。

15、在MFC中,通用对话框有哪些?如何在程序中使用它们?
答:文件选择对话框、颜色选择对话框、字体选择对话框、打印和打印设置对话框以及正文查找和替代对话框。

16、如果消息对话框只有“是”和“否”两个按钮,则如何设置MessageBox函数的参数?
答:MessageBox(NULL,“显示的内容”,“标题”,MB_YESNO)。

相关文档
最新文档