第五章 对话框和标准控件
北京林业大学信息学院
创建对话框---创建对话框模板
可以使用对话框编辑器来创建包含不同控件的对话 框模板,在对话框编辑器中,可以调整对话框显示时 的大小和位置,从Controls工具栏拖放各种类型的控 件到对话框中,用Dialog工具栏调整控件的位置,测 试对话框的外观和行为。
北京林业大学信息学院
实现步骤
(3) 对视图类进行编辑,以能激活对话框,并进 行绘图。
首先要使用ResourceView中的菜单编辑器来创建菜 单项“颜色设置”。
在创建了菜单项后,可通过ClassWizard为该菜单项 映射菜单消息。
在视图中需要生成一个该类的对象。记得包含头文件 在为菜单项颜色设置映射的消息中,写如下代码
控件
静态控件 静态控件 静态控件 编辑框 编辑框 编辑框
ID
Caption
IDC_STATIC1 R(0-255)
IDC_STATIC2 G(0-255)
IDC_STATIC3 B(0-255)
IDC_R
IDC_G
IDC_B
北京林业大学信息学院
实现步骤
(2) 使用ClassWizard创建对话框类CMyColorDialog 在ClassWisard中选取属性表Member Variables,为控
对话框模板定义了对话框的特性(比如大小、 位置和风格)以及对话框中每个控件的类型和 位置。 2、对话框类
从CDialog类派生的对话框类提供编程接口 来管理对话框 。
北京林业大学信息学院
对话框的分类
1、模式(Modal)对话框 在对话框关闭之前,用户无法在同一应用程
序的其他地方进行工作,例如打开文件对话框。 2、无模式(Modaless)对话框
件IDC_R、IDC_G和IDC_B分别映射int类型成员变量 m_nR、m_nG和m_nB。
在ClassWisard中选取属性表Message Maps,为 CMyColorDialog的消息WM_INITDIALOG映射函数 OnInitDialog(),并单击Edit Code按钮为OnInitDialog 函数编写初始化代码。
的控件。 (3) 指定控件和成员变量之间如何交换数据。 (4) 映射Windows消息到对话框类,如鼠标左键单击消息。 (5) 利用ClassWizard为对话框中的按钮和其他可以产生事件的
控件加入相应的消息控件函数。 (6) 为各种事件处理函数编辑代码,来够完成指定的工作。
北京林业大学信息学院
创建对话框--创建对话框类
对话框上的许多控件还需要进行初始化工作, 从而使得对话框被显示时这些控件具有相应类 型的初值。对话框的初始化工作可以使用以下 3种方法来进行。
(1) 在构造函数中初始化 (2) WM_CREATE初始化 (3) WM_INITDIALOG初始化 对于对话框的初始化工作通常都在响应该消 息时进行 。
北京林业大学信息学院
dlg.DoModal(); Invalidate();
北京林业大学信息学院
实现步骤
编辑视图类中的OnDraw,进行绘图
void CMyView::OnDraw(CDC* pDC) {
CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(rect); Cbrush brush; brush.CreateSolidBrush(RGB(dlg.m_nR,dlg.m_nG,dlg.m_nB)); pDC->SelectObject(&brush); pDC->Rectangle(100,100,200,300); }
北京林业大学信息学院
模式对话框编程
【例】 简单模式对话框的编程。 本程序的功能是在客户区显示一个可
由用户指定填充颜色的矩形。当菜单项 【颜色设置】被选中时将调出【颜色】 对话框,在其中用户可以确定RGB三颜 色的值,单击【确定】按钮后即可改变 矩形的填充色。
北京林业大学信息学院
实现步骤
程序的步骤如下。 (1) 使用对话框编辑器创建对话框模板,最终完成的对话 框界面如图所示。
模式对话框编程
对于模式对话框的编程可以按以下步骤进行。 (1) 根据要求创建对话框模板。 (2) 使用ClassWizard创建对话框类并进行各类
事件函数的代码编写。 (3) 对视图类进行编辑,以便对话框能够被激活。
在所编写的代码中,首先创建对话框类的对象, 然后通过该对象调用对话框类成员函数 DoModal()。 只 有 当 用 户 退 出 对 话 框 窗 口 时 , DoModal函数才能返回。
对话框和Windows标准控件
对话框的组成与分类 创建对话框 模式对话框的编程 通用对话框 Windows 标准控件 资源与资源编辑器 菜单的使用 工具栏的使用 状态栏的使用
北京林业大学信息学院
对话框的组成
对话框:是Windows应用程序与用户打交 道的界面元素 。 1、对话框模板
可以使用菜单方式:InsertResource打开Insert Resource对话框,选中Dialog后单击New按钮即可 打开对话框编辑器。或者使用项目的ResourceView, 找到Dialog资源,右击后选择Insert Dialog也可打 开对话框编辑器。
北京林业大学业大学信息学院
实现步骤
BOOL CMyColorDialog::OnInitDialog() {
CDialog::OnInitDialog(); m_nR=0; m_nG=0; m_nR=0; UpdateData(FALSE); //将设定的变量值传送给对应的控件 return TRUE; }
(a) 对话框模板 (c) Dialog工具栏
(b) Controls工具栏
北京林业大学信息学院
创建对话框---创建对话框类
在创建了对话框模板后,就可以利用ClassWisard来 创建从CDialog派生且连接到对话框模板的对话框类。
(1) 创建了一个连接到对话框模板CDialog类的派生类。 (2) 利用ClassWizard向对话框类加入数据成员来表示对话框中
第五章 常用控件
5.5按钮控件
按钮类控件是被系统预定义为Button的一类控件,该 类控件具有十余种不同的窗口风格,包含了普通的下压按钮、 单选按钮、检查按钮和分组框等多种常用的按钮形式。 下压按钮的作用是对用户的鼠标单击作出反应并触发 相应的事件,在按钮中既可以显示正文,也可以显示位图。 检查按钮可作为一种选择标记,可以有选中、不选中 和不确定三种状态。 单选按钮一般都是成组出现的,具有互斥的性质,即 同组单选按钮中只能有一个是被选中的。 检查按钮、单选按钮和下压按钮只能发送通知码为 BN_CLICKEN(单击按钮)和BN_DOUBLECLICKED(双 击按钮)的WM_COMMAND消息
5.4 编辑类控件
编辑类控件是一种可以用来接受用户键盘字符输 入的矩形区域,可以在其内进行编辑操作。该类控件 是程序接受用户字符输入的一种主要手段。 可以通过使用CWnd类成员函数SetWindowText() 和GetWindowText()来设定和获取一个编辑类控件中 的文本。
编辑框控件 (CEdit类)
CEdit类的主要成员函数
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ) void GetWindowText( CString& rString ) const; int GetWindowTextLength( ) const; void GetSel( int& nStartChar, int& nEndChar ) const; int LineFromChar( int nIndex = –1 ) const; int LineIndex( int nLine = –1 ) const; int GetLineCount( ) const; void SetWindowText( LPCTSTR lpszString ); void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE ); void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE );
对话框及常用控件
2
对话框程序的创建
2.1 一个对话框程序 2.2 创建对话框资源模板 2.3 利用对话框类CDialog操纵对话框 2.4 初始化对话框 2.5 对话框的调用 2.6 对话框的消息处理
2.1
一个对话框程序
1.程序功能 该应用程序具有认证的功能:当该程序运行时,首先弹 出一个“密码验证” 对话框,让用户输入其用户名和密 码。用户需要输入用户名“good”和用户密码“ good ” 后才能进入主界面,若有一个输入错误,都不能进入。 2.程序类型
1.3 对话框的组成(续)
对话框类 从CDialog类派生的对话框类提供编程接口来 管理与对话框模板相关联的对话框。 CDialog 类的 许多成员函数与对话框编程密切相关,可供程序员 调用。由于对话框是一种窗口,因此相应的对话框 类必须与一个Windows窗口相联系,而对话框资源 模板就是用于创建这个 Windows窗口及其包含在其 中的控件。 对话框类可以看作对话框应用程序的一种程序 员接口,用户对应用程序操作,后台调用的都是该 类的成员函数来完成的。
可见在对话框的构造函数中主要是对对话框的数据成员变量 进行初始化。
2.4
初始化对话框(续)
2.在WM_CREATE的消息映射函数中初始化 由于对话框也是窗口,它在窗口创建时会收到 WM_CREATE 消息,该消息的响应函数是 OnCreate()。 这样,就能在窗口创建中做一些初始化工作。尽管用户 可能在 WM_CREATE 消息处理函数中进行一些数据成员 的初始化工作,但更通常的做法是在对话框中的所有控 件都建立起来之后,响应消息 WM_INITDIALOG 时,对 数据成员进行初始化。 3.在WM_INITDIALOG的消息映射函数中初始化 在对话框创建时,会收到 WM_INITDIALOG 消息,该 消息的响应函数是OnInitDialog()。在得到了
VC++ 课件 第05章 对话框和常用控件
5.2控件的创建和使用方法
5.2.1控件的创建方法 控件的创建方式有以下两种: 一种是在对话框模板中用编辑器指定控件,也就是说,将控件的父窗口指 定为对话框,这样做的好处是明显的,因为当应用程序启动该对话框时, Windows系统就会为对话框创建控件;而当对话框消失时,控件也随之清 除。 另一种方式是将控件看作是任一窗口的子窗口,并通过调用相应的Create 函数来创建。 [例Ex_SDIHello] 在上例Ex_SDIHello的基础上用子窗口方式创建控件。 (1)打开CMyDlg的头文件MyDlg.h,添加一个按钮类CButton指针变量: class CMyDlg : public CDialog { // Construction public: CMyDlg(CWnd* pParent = NULL); // standard constructor CButton *m_btnWnd; … }
5.1对话框的使用
在程序中使用对话框 (1)利用项目工作区的ClassView标签项,将Ex_SDIHello.cpp源文件打开; (2)在Ex_SDIHello.cpp源文件的前面加上包含类CMyDlg的头文件: #include "MyDlg.h" (3)在InitInstance函数体中的“return TRUE;”语句之前添加下列代码: CMyDlg dlg; dlg.DoModal(); DoModal是模态对话框最常用的函数,它负责对话框的显示和终止。 (4)编译并运行。在程序的一开始就出现用户自己设计的对话框,单击 [Button1]按钮将弹出“欢迎进入对话框的设计!”的消息对话框来。
5.1对话框的使用
5.1.2使用对话框编辑器
打开对话框编辑器
将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对 话框ID。或者,选择“Insert”“Resource”菜单命令(或按快捷键Ctrl+R), 选择Dialog项,单击New。
access数据库应用教程5,窗体与控件
Access数据库应用教程
主/子表窗体
数据表窗体
主/子表窗体
电脑基础· 实例· 上机系列丛书
清华大学出版社
Access数据库应用教程
数据透视表/数据透视图
一个数据透视表窗体。 “数据透视表”窗体和“数据透视图”窗体 与窗体的“数据透视表”和“数据透视图” 视图不同。Access不能直接创建数据透视 表/数据透视图窗体,但可在数据透视表/数 据透视图视图中拖放字段来创建布局,以数 据透视表/数据透视图的方式显示数据。
Access数据库应用教程
第5章
学习目标 本章要点 上机练习 习 题
窗体与控件
电脑基础· 实例· 上机系列丛书
清华大学出版社
Access数据库应用教程
学习目标
窗体不仅用于查看、添加、编辑和删除数据,还提供 了直观的用户界面用于创建系统管理窗体。窗体通过 标签、文本框和命令按钮等各种控件来创建界面。控 件可以绑定到表或查询的字段,从而通过控件便可显 示或修改数据。创建窗体也就是在窗体中布臵各种控 件,并建立控件与表或查询的关联。Access为用户提 供了各种窗体向导,使用窗体向导可以快速创建各种 常用的窗体。窗体设计器则是更专业的窗体设计工具, 用于创建格式更为丰富的自定义窗体。本章将在介绍 窗体和控件的基础上,详细讲解如何使用窗体向导和 窗体设计器创建窗体。
电脑基础· 实例· 上机系列丛书
清华大学出版社
Access数据库应用教程
按窗体筛选
设置了筛选准则后,单击工具栏上的 足筛选条件的记录。 筛选条件在窗体打开时一直有效,若要取消筛选,可单击工具栏上的 钮,或选择“记录/取消筛选/排序”命令。 按 按钮执行筛选,窗体中则只显示满
第五章菜单工具栏状态栏和对话框
11. 显示窗口列表(Window List)检查框:
决定是否显示所有打开的子窗体标题。
对MDI窗体和MDI子窗体有效,对普通窗体无效。
5.1 菜单设计
3.菜单设计的几项操作:
(1).设计下拉菜单 (2).设计子菜单或改变子菜单级别 (3).为菜单项分组
菜单名用减号“-” (4).为菜单项指定访问键和快捷键
5.4.2 通用对话框
三、通用对话框使用---打开/另存为对话框
属性
4.InitDir(初始化路径)属性:该属性用来指定打开对话框 中的初始目录,若不设置,系统则默认为“C:\My Documents\”。
sbrScrl
4
Scroll Lock 键。当激活滚动锁定时,用黑体显示字母 SCRL,反之,当停用滚动键时, 显示暗淡的字母。
sbrTime 5 Time。以系统格式显示当前时间。
sbrDate 6 Date。以系统格式显示当前日期。
5.3 状态栏(StatusBa源自 控件)3.状态栏事件响应及显示信息修改
2. 在ToolBar控件中添加按钮 (1)ToolBar控件
ToolBar控件包含一个按钮对象集合,该对象被用来创 建与应用程序相关联的工具栏。工具栏包含一些按钮,这 些按钮与应用程序菜单中各项的按钮对应,工具栏为用户 访问应用程序的最常用功能和命令提供了图形接口。
(2)为工具栏连接按钮 右键单击Toolbar控件,选择“属性”命令打开如图2所
False(缺省):选择“取消”按钮,没有错误警告。
2、 通用对话框的方法
除了Acton属性,VB还提供了一组方法用来打开不同类型对话框
ShowOpen
ShowSave ShowColor
第五章 MapBasic开发环境
主过程定义
Sub Main Dim 语句 … End Sub
其它过程定义
Sub … Dim 语句 … End Sub
自定义函数
Function… Dim 语句 … End Function
过程的使用方法
过程的声明
主过程的声明
Declare Sub Main
Sub Main Note “Hello!” End Sub Declare Sub 过程名(参数)
在Function…End Function结构中的函数名 作为一个形式参数,在函数体中可以赋一个值 给函数名,它是返回给函数调用者的值。
以用户自定义函数的 方法完成求和功能
Declare Sub Main Declare Function sum (ByVal n As Integer) As Integer
End If
Else
counter=counter-1
End If
Do Case
Dim counter As Integer .. Do Case counter Case 1
Goto
Dim counter As Integer
…
If counter<0 Then Goto L1 End If … L1: … …
数组变量
定义 使用 Dim x(10) As Integer 数组名(元素号) x(5)=10
改变数组的大小
ReDim x(20) As Integer
注意:MapBasic只支持一维数组,下标从1开始
自定义数据类型
是一个或多个变量类型的集合,定义了一 个自定义数据类型,就可以声明这种这种类型 的变量。 定义方式
Dim temp,i As Integer temp=0 For i =1 To n temp=temp+ i
MFC控件
使用Windows标准控件我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。
在Visual C++中,可以使用的控件分成三类:(1) Windows标准控件Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。
所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。
Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。
表6.1 Windows标准控件续表6.1前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。
Windows标准控件在以下环境下提供:∙Windows 95∙Windows NT 3.51及以后版本∙Win32s 1.3∙注意:∙Visual C++ 4.2及以后版本不再支持Win32s。
(2) ActiveX控件ActiveX控件可用于对话框中,也可用于HTML文档中。
这种控件过去被称为OLE 控件。
本书将在专门的章节中来讲述关于ActiveX控件的知识。
这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。
(3) 其它MFC控件类除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:∙类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。
∙类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。
∙类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。
在本章我们仅讲述第一类控件,即Windows标准控件。
所涉及的内容包括各个控件的使用及相应的技巧。
实验1 创建对话框应用程序及控件使用
实验1 创建对话框应用程序及控件使用一.实验目的1.掌握使用“MFC应用程序向导”创建对话框应用程序框架的方法2.掌握给对话框添加控件的方法,以及使用“MFC类向导”为控件通知消息映射消息处理函数的方法3.掌握使用“MFC类向导”为控件添加控件变量的方法4.掌握控件变量与控件的数据交换机制以及使用控件变量访问和控制控件的方法5.掌握对话框中添加自定义消息的方法二.实验内容1.创建一个Windows对话框应用程序,其界面要求实现以下功能:在下部的文本编辑框(Edit Control )中输入内容后,单击“添加”按钮,文本编辑框的内容被作为一个条目添加到上部的列表框(List Box)中2.为上一步创建的程序添加一条自定义消息,消息名为WM_MYMESSAGE,也可自己命名。
单击“添加”按钮时,将发送盖消息,该消息的处理函数将删除编辑框中已输入的所有内容。
三.实验步骤1.使用“MFC应用程序向导”创建一个对话框应用程序,项目名称编程者自己确定。
2.将主动生成的对话框中的静态文本控件和“取消”命令按钮删除,在窗口上部添加一个列表框(List Box)控件,在列表框中的静态文本控件和“取消命令按钮删除,在窗口上部添加一按钮左侧添加一个命令按钮(Button)控件.3.将“确定”按钮的caption属性修改为“退出”,新添加的命令按钮的caption属性修改为“添加”,修改对话框窗口的caption属性为“实验1”,调整各控件的大小和布局如上图所示。
4.为列表框控件添加一个控制变量,类别为control,变量名编程者自己确定,这里取名为m_list,为编辑框控件添加一个控制变量,类别为value,类型Cstring,变量名为m_Edit,也可由编程者自己确定。
5.为“添加”按钮添加并编写BN_CLICKED消息的消息处理函数,该函数代码如下:Void CShiyanDlg : : OnBnclickedButton1( ){//TODO:在此添加控件通知处理程序代码UpdateData(true); //将控件中的数据交换至控件变量If(!m_Edit . ISEmpty()) //如果编辑框内容不空,则将内容添加至列表框M_List . Addstring(m_Edit);}6.编译运行程序,在文本编辑框中输入内容并单击“按钮”,观察执行结果。
MFC控件使用详细教程
使用Windows标准控件我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。
在Visual C++中,可以使用的控件分成三类:(1) Windows标准控件Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。
所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。
Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。
表6.1 Windows标准控件续表6.1前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。
Windows标准控件在以下环境下提供:•Windows 95•Windows NT 3.51及以后版本•Win32s 1.3•注意:•Visual C++ 4.2及以后版本不再支持Win32s。
(2) ActiveX控件ActiveX控件可用于对话框中,也可用于HTML文档中。
这种控件过去被称为OLE 控件。
本书将在专门的章节中来讲述关于ActiveX控件的知识。
这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。
(3) 其它MFC控件类除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:•类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。
•类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。
•类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。
在本章我们仅讲述第一类控件,即Windows标准控件。
所涉及的内容包括各个控件的使用及相应的技巧。
对话框及常用控件
统一的视觉风格
对话框的视觉风格应与应 用程序的整体风格保持一 致。
合适的色彩搭配
对话框的颜色搭配应符合 应用程序的主题和风格, 同时也要考虑色彩的对比 度和舒适度。
精美的图标和插图
对话框中可以适当地使用 图标和插图,以提高视觉 效果和用户体验。
一致性
对话框布局一致
不同对话框的布局和组件应保持一致,以提高用户对 应用程序的熟悉度和使用效率。
提示对话框
总结词
提供简短信息或警告的对话框
详细描述
提示对话框通常用于向用户显示应用程序的状态或提 供简短的通知。它包含一个标题、一条消息和一个关 闭按钮。根据需要,提示对话框还可以包含图标以强 调其重要性。
感谢观看
THANKS
按钮
总结词
用于触发特定功能的控件
详细描述
按钮是常见的交互控件,用户点击按钮后可以触发特定的功能或操作。根据功 能,按钮可分为确认、取消、提交等类型。
列表框
总结词
用于显示和选择列表项的控件
详细描述
列表框可以显示一系列的列表项,用户可以通过鼠标或键盘选择所需的列表项。根据选择方式,列表 框可分为单选列表框和多选列表框。
对话框的分类
模态对话框
模态对话框会阻塞用户对其他界面的 操作,直到对话框关闭。这类对话框 常用于需要用户做出决策或输入的情 况。
非模态对话框
非模态对话框不会阻塞用户对其他界 面的操作,用户可以在对话框打开的 同时进行其他操作。这类对话框常用 于显示信息或提供简单的选项。
对话框的使用场景
确认操作
01
复选框
总结词
用于表示选项是否被选中的控件
详细描述
复选框是一种开关控件,用户可以通过点击来选中或取消选中某个选项。多个复选框可 以组合在一起,表示多个选项的组合。Fra bibliotek单选按钮
