对话框与通用控件
对话框及常用控件

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()。在得到了
第8章通用对话框、菜单、多文档界面

两种方法: 1、菜单:工程—部件,在对话框中选“Microsoft Common
Dialog Control 6.0 ” 2、快捷:工具箱单击鼠标右键,在快捷菜单中选“部件”,在
对话框中选“Microsoft Common Dialog Control 6.0 ”
8.3.1 单文档界面
1.添加窗体 三种方法:
A.选择“工程”菜单的“添加窗体”子菜单 B.选择工具栏的添加窗体按钮 C.在工程资源管理窗口单击鼠标右键,在出现的快捷菜单 中选择“添加”菜单中的“添加窗体”菜单
8.1.2 通用对话框的使用
通用对话框控件没有事件,只有方法和属性。 通过方法或Action属性值显示标准对话框。 通用对话框控件中的每一个标准对话框都有自己的属性。
方法名称 ShowOpen ShowSave ShowColor ShowFont ShowPrinter ShowHelp
Action属性值 1 2 3 4 5 6
8.2.2 弹出菜单
例8-6 在例8-5的文本框中点击鼠标右键时,在鼠标当前位置弹出编辑
菜单项。 '显示编辑的弹出菜单 Private Sub Text1_MouseUp(Button As Integer, Shift As Integer,
X As Single, Y As Single) '在文本框对象上鼠标弹起事件
程序代码
.FontBold = Dlog.FontBold
.ForeColor = Dlog.Color
End With
End Sub
8.1.7 “打印”对话框
打印对话框通过ShowPrint方法或Action属性设为5打开。 打印对话框仅供用户对打印参数进行设置,要实现打印功能还需要通过对
VB消息框(MsgBox)和输入对话框(InputBox)

[教案](八)对话框授课方式:讲授法授课学时:2学时教学目的:通过本次课的学习,学生应该掌握能灵活使用消息框(MsgBox)和输入对话框(InputBox)和通用对话框,体现用户界面更具有交互性。
能灵活使用控件数组,并能编写出响应事件的代码。
教学重点和难点:1.消息框(MsgBox)和输入对话框(InputBox)的语法格式;2.各种属性的灵活使用。
教学过程:消息框(MsgBox)和输入对话框(InputBox)和通用对话框一、消息框(MsgBox)和输入对话框1.了解其在VB中的用途。
2.掌握基语法格式3.实际中的应用二、通用对话框1.用途介绍其在VB中的用途。
2.主要属性3.在实际中应用实例《Visual Basic程序设计语言》授课教案[讲稿](八)对话框一、消息框(MsgBox)和输入对话框我们已学习了两个函数的语法格式,下面通过例子来说明其在实际的用法。
1 InputBox示例:设计一个程序,将输入的时、分和秒的和转换成秒数。
要求从输入对话框输入时、分和秒数。
事件过程与代码:Private Sub Command1_Click()Dim h As Integer, m As Integer, s As IntegerDim x As Longh = Val(Text1.Text)m = Val(Text2.Text)s = Val(Text3.Text)x = h * 3600 + m * 60 + sLabel1.Caption = "共计" & Str(x) & "秒"End SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""End SubPrivate Sub Command3_Click()Text1.Text = InputBox("时间中的小时数", "请输入", 0)End SubPrivate Sub Command4_Click()Text2.Text = InputBox("时间中的分钟数", "请输入", 0)End SubPrivate Sub Command5_Click()Text3.Text = InputBox("时间中的秒数", "请输入", 0)End Sub2、MsgBox函数例题:•将文本框中的英文字母进行大小写切换。
vb通用对话框名词解释

vb通用对话框名词解释
VB通用对话框是一种用于Visual Basic编程语言的对话框控件。
它可以用于创建各种类型的对话框,包括消息框、输入框、文件对话框、颜色对话框等。
这些对话框可以帮助程序员与用户进行交互,从而增强程序的用户友好性和功能性。
消息框对话框用于向用户显示消息,如警告、错误、提示等。
输入框对话框用于接收用户输入的文本或值。
文件对话框用于让用户选择文件或保存文件。
颜色对话框用于让用户选择颜色。
VB通用对话框提供了简单易用的接口和方法,使程序员能够轻松地创建和管理各种类型的对话框。
通过使用这些对话框,程序员可以为他们的应用程序增加更多的交互性和功能性,从而提升用户体验。
总之,VB通用对话框是Visual Basic编程语言中非常重要的一个组件,它为程序员提供了丰富的对话框类型和功能,帮助他们更好地与用户进行交互,使应用程序更加强大和易用。
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。
Windows程序设计 第3章 对话框和常见控件

树形控件
树形控件(TreeCtrl)和下面要讲的列表控件(ListCtrl) 在系统中大量被使用,例如Windows资源管理器就是一 个典型的树形控件例子。 树形控件可以用于树形的结构,其中有一个根接点(Root) (Root) 然后下面有许多子结点,而每个子结点上有允许有一个 或多个或没有子结点。MFC中使用CTreeCtrl类来封装树 形控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
滚动条控件
滚动条(Scroll Bar)一般不会单独使用,因为SpinCtrl 可以取代滚动条的一部分作用,但是如果我们需要自己生 成派生窗口,滚动条还是会派上一些用场。创建一个滚动 条可以使用成员函数: : BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
MFC 提供类CDialog作为对话框服务的基类,类CDialog将对话框模板与使 用对话框时必需熟悉的几种类方法进行封装。对于对话框中发送消息的的 控件,我们可创建相应的消息处理程序。MFC编译器提供的框架工具使得 我们把对话框中的控件消息映像到派生类的类函数变得简单、快捷。对话 框数据映像函数使用专门的值初始化对话框中的控件,接着检索数据并使 之有效。大多数对话框需要类成员变量来跟踪用户的输入,这些数据在数 据映像中使用,它们在对话控件与类变量之间自动映像数据。 为创建对话框,首先建立CDialog对象,然后创建和显示对话框窗口我们 有两种选择:一种方法是调用函数CDialog::DoModal()来创建有模式对话 框窗口,另一种方法是调用函数CDialog::Create()来创建无模式对话框窗口, 在上述两种情况之下,对话框对象先初始化,然后创建对话框以及它的控 件。 类CDialog成员函数Create()使用两种重载原形,最常用的一种如下: Create(UINT nIDTemplate, CWnd * pParentWnd=NULL); 其中,参数nIDTemplate是一个对话框模板的标识符, 参数pParentWnd是对话框所属的父窗口。
VB--ch7通用对话框

CommonDialog1. ShowPrinter 同 Action = 5 CommonDialog1. ShowHelp 同 Action = 6
设计时设置控件属性
• 右击窗体上的CommonDialog控件图标, 可以打开“属性页”对话框,如下图所示:
有5个选项卡, 用于对不同类 型的对话框进 行属性设置
CommonDialog1.Action = 4
Text1.FontName =CommonDialog1.FontName Text1 1.FontBold=CommonDialog1.FontBold
End Sub
例7.5
“字体”对话框示例。
编程:在文本框上显示文字,利用“字体”对 话框来设置所显示文字的字体、字型、大小、 颜色等。 知识点: 设置字体一定需要添加语句: CommonDialog1.Flags=1+256 (屏幕字体加下划线、删除线、颜色组合框)
把对话框部件添加到工具箱步骤: “工程” “部件” 选中: Microsoft Common Dialog Control 6.0 对话框的类型由对话框控件的Action属性决定。 与Timer 控件一样,CommonDialog 控件
在程序运行时不可见。
通用对话框的重要属性 Action
Action属性只能在运行时设置: 只写
Text1.BackColor = CommonDialog1.Color
End Sub
例7.4 利用颜色对话框给shape着色
界面设计,如图所示。 在窗体上添加一个框架:在框架上画出6个单选 钮(控件数组)用来选择不同的形状; 形状控件、通用对话框控件、命令按钮各一个。 知识点:
这里采用了一组 控件数组来设计 单选钮,充分体 现使用控件数组 的优点
第三章对话框和常用控件69

3.1 对话框的使用 3.2 控件的创建和使用方法 3.3 常用控件 3.4 通用对话框和消息对话框 3.5 综合应用
3.1对话框的使用
在Visual C++ 6.0应用程序中,使用一个对话框通常有两种情形:一是直接创建一个 对话框应用程序,二是在一个应用程序中进行调用。为不失一般性,这里介绍第二种对话 框使用情况的一般过程,即依次如下:
3.1对话框的使用
项目 ID框 标题框 字体按钮 位置X/位置Y 菜单框
类名称框
图3.3 对话框属性窗口 表3.2 对话框的常规(General)属性
说明 修改或选择对话框的标识符名称 输入对话框的标题名称,中英文均可,如“我的对话框” 单击此按钮可选择字体的种类(如宋体)及尺寸(如9号) 对话框左上角在父窗口中的X、Y坐标,都为0时表示居中 默认值为无,当对话框需要菜单时输入或选择指定的菜单资 源 默认值为无,它提供C/C++语言编程时所需要的对话框类名, 对MFC类库的资源文件来说,该项不被激活。
● 自动出现“对话框资源编辑器”窗口,在这里可以通过“控件工具栏”和“布 局工具栏”向对话框添加和布局控件,并可设置对话框的属性。
需要说明的是,第一次使用Visual C++6.0的对话框编辑器时,“控件工具栏”和 “布局工具栏”可能是浮动,可以将其拖放到指定位置(参看图3.2),以便让开发环境 更易于操作。
3.1对话框的使用
图3.8 布局前的静态文本控件
图3.9 布局后的静态文本控件
3.1.4 创建对话框类 在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标或按Ctrl+W快 捷键,将弹出一个对话框,询问是否为对话框资源创建一个新类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;
创建对话框资源
控件说明
Name字段的静态文本控件 Name编辑控件 SS Nbr(社会安全号码)编辑控件 Bio(简历)编辑控件 Category分组框 Hourly和Salary单选按钮。 Insurance分组框
Life,Disability和Medical复选框 Skill组合框 Educ(教育程度)组合框 Dept(部门)列表框 Lang(语言)组合框 Loyalty和Reliability滚动条 OK,Cancel和Special按钮 Any图标
CProgressCtrl 用于在一较长操作中提示用户所完 成的进度
多格式文本编辑 CRichEditCtrl 提供可设置字符和段落格式的 文本编辑的窗口 滑块 旋转按钮 CSliderCtrl 包括一个有可选标记的滑块的窗口 提供一对可用于增减某个 值的箭头
CSpinButtonCtrl
状态条
CStatusBarCtrl
4.向文件exaView.cpp中的虚函数OnDraw 中加入代码。
void CEx06aView::OnDraw(CDC* pDC) { pDC->TextOut(0, 0, "Press the left mouse button here."); }
5.在exaView.cpp文件中加入对对话框类的 包含语句。
对工具条按钮或其它控件功能的简单描述 树 CTreeCtrl 用于显示一系列的项的继承结构
模式对话框的编程
向现存项目中添加模式对话框的步骤: 1.用对话框编辑器创建包含各种控件的对话框资 源。对话框编辑器会对项目的资源文件进行更 新,使之包含新的对话框资源,并且该项目的 resource.h文件也会被更新,以便能够包含新 的#define常量 2.利用Class Wizard来创建Cdialog的派生类,并 将它和第一步所创建的资源相连接。Class Wizard会自动在Developer Studio的项目中加 入相应的代码和头文件。 3.利用Class wizard 向对话框类中加入数据成员、 交换函数和确认函数。
4.利用Class Wizard对对话框中的按钮和其 他可以产生事件的控件加入相应的消息控 制函数。 5.对一些特殊的控件初始化函数(如 OnInitDialog)及消息控制函数进行编辑。 6.对视图类的代码进行编辑,以便对话框能 够被激活。
包罗万象的对话框
我们不准备在一些小的对话框上浪费时间, 而是将直接创建一个几乎包含了各种类 型的控件的庞大对话框。有了Developer Studio中的对话框编辑器的帮助,这一工 作就容易得多了!
int ret = dlg.DoModal(); //关键 TRACE("DoModal return = %d\n", ret); TRACE("name = %s, ssn = %d, cat = %d\n", dlg.m_strName, dlg.m_nSsn, dlg.m_nCat); TRACE("dept = %s, skill = %s, lang = %s, educ = %s\n", dlg.m_strDept, dlg.m_strSkill, dlg.m_strLang, dlg.m_strEduc); TRACE("life = %d, dis = %d, med = %d, bio = %s\n", dlg.m_bInsLife, dlg.m_bInsDis, dlg.m_bInsMed, dlg.m_strBio); TRACE("loyalty = %d, reliability = %d\n", dlg.m_nLoyal, dlg.m_nRely); }
Windows标准控件
控件 按钮 MFC类 Cbutton 描述 用来产生某种行为的按钮, 以及复选框、单选钮和组框
列表框
编辑框 组合框
CListBox
CEdit CComboBox
包括一系列字符串的列表
用于键入文本 编辑框和列表框的组合
滚动条
静态文本 动画 标题头
CScrollBar
Cstatic CAnimateCtrl CHeaderCtrl
4.为Special按钮加入消息控件函数。 ( ClassWizard Message Maps 标签,选择 IDC_SPECIAL,在选择Message中的 BN_CLICKED消息,添加处理函数OnSpecial void CEx06aDialog::OnSpecial() { TRACE("CEx06aDialog::OnSpecial\n"); }
用于显示状态信息的窗口,同
MFC类CStatusBar类似
选项卡
CTabCtrl
在选项卡对话框或属性页中
提供具有类似笔记本中使用的分隔标签的外观的选项卡
工具条 CToolBarCtrl 具有一系列命令生成按钮的 窗口,同MFC类CToolBar类似
工具提示
CToolTipCtrl
一个小的弹出式窗口,用于提供
对话框与通用控件
模式和无模式对话框 资源和控件 模式对话框的编程 包罗万象的对话框 Windows通用控件 示例程序 无模式对话框 CFormView类——另外一种 可供选择的无模式对话框 Windows通用对话框
模式和无模式对话框
Cdialog基类既支持模式对话框,也支持无模式对话框。 对于模式对话框,如Open File对话框,在该对话框被 关闭之前,用户将无法在同一个应用程序(更准确地 说,是在同一用户接口线程里)的其他地方进行工作; 而对于无模式对话框,在它仍然保留在屏幕上的同时, 用户还可以在应用程序的其他窗口中进行工作。 Microsoft Word 中的Find And Replace对话框就是无模 式对话框的一个很好的例子,在该对话框打开的同时, 我们仍然可以对文档进行编辑。
资源和控件
对话框包含了一些被称为控件的元素,对话框控件包括编辑控 件(既文本框)、按钮、列表框、组合框、静态文本(既标 签)、树状视图、进度指示器和滑块等等,而Windows正是通 过特殊的组及选项卡逻辑来管理这些控件的,这极大地减轻了 我们的编程负担。这些对话框控件既可以通过CWnd的指针来 引用(因为它们本身实际上就是窗口),也可以通过资源文件 中所制定的索引值(和#define常量相关联)来引用。控件通 过向上级对话框发送消息来响应用户的动作,如输入了正文或 按下了鼠标键等。
Cdialog::DoModal CEx06aDialog::OnInitDialog …其他初始化… Cdialog:: OnInitDialog CWnd::UpdateData(FLASE) CEx06aDialog::DoDataExchange 用户输入数据… 用户单击OK 按钮 CEx06aDialog::OnOK …其他的确认处理… Dialog::OnOK CWnd::UpdateData(TRUE) CEx06aDialog::DoDataExchange CEx06aDialog::EndDialog(IDOK)