第四章对话框和常用控件
VB 第四章 菜单、工具栏、状态栏与对话框

下拉式菜单设计1.下拉式菜单的组成(如图4.2所示)(1)下拉式菜单由主菜单、主菜单项、子菜单等组成。
(2)子菜单可分为一级子菜单、二级子菜单直到五级子菜单。
(3)每级子菜单由菜单项、快捷键、分隔条、子菜单提示符等组成。
图4.2 下拉式菜单的组成①菜单项:所有子菜单的基本元素就是菜单项,每个菜单项代表一条命令或子菜单标题。
②分隔条:分隔条为一条横线,用于在子菜单中区分不同功能的菜单项组,使菜单项功能一目了然,并且方便操作。
③快捷键:为每个最底层的菜单项设置快捷键后,可以在不用鼠标操作菜单项的情况下,通过快捷键直接执行相应的命令。
④热键:热键是在鼠标失效时,为用户操作菜单项提供的按键选择,使用热键时,须与<Alt>键同时使用。
⑤子菜单提示符:如果某个菜单项后有子菜单,则在此菜单项的右边出现一个向右指示的小三角子菜单提示符。
2.菜单编辑器的启动执行菜单命令:工具| 菜单编辑器,即可打开菜单编辑器,如图4.3所示。
菜单编辑器分为上下两部分:上半部分用于设置菜单项的属性,下半部分用于显示用户设置的主菜单项与子菜单项内容。
图4.3 菜单编辑器3.菜单编辑器的使用方法(1)标题栏(Caption):输入菜单项的标题、设置热键与分隔条;①标题:直接输入标题内容,如“文件”。
②热键:在菜单项中某个字母前输入“&”后该字母将成为热键,如在图4.3的文件主菜单项中输入“文件(&F)”。
③分隔条:在标题框中键入一个连字符“-”即可。
(2)名称栏(Name):用于输入菜单项内部惟一标识符,如图4.3 “File”等,程序执行时不会显示名字栏内容。
注意:分隔符也要输入名称,且不能重复命名。
(3)快捷键下拉列表框(Shortcut Key):用于选择菜单项的快捷键,用鼠标单击列表框的下拉按钮,在列表框中可选择不同的快捷键。
(4)下一个按钮(Next):当用户将一个菜单项的各属性设置完后,单击“下一个”按键可新建一个菜单项或进入下一个菜单项。
对话框和常用控件

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;
第4章对话框和常用控件(2)

4.2.3 控件的数据交换(DDX)和数据校验(DDV)
使用MFC ClassWizard可以很容易地为一个控件定义关联变 量并可设置其数据范围。例如,下面的步骤是为CEx_DlgCtrlsDlg类 的按钮控件IDC_BUTTON1添加并使用其关联变量m_RelBtn。 (1) 打开MFC ClassWizard,并切换到Member Variables页 面,如图4.30所示。
图4.28 添加按钮消息映射函数
(6) 单击[OK]按钮,在MFC ClassWizard的“Member functions” 列表中将列出新增加的成员函数。选择此函数,单击[Edit Code] 按钮,定位到该函数的实现代码处。在此成员函数中添加代码: void CEx_DlgCtrlsDlg::OnButton1() { MessageBox("你按下了\"Button1\"按钮!"); } (7) 编译并运行,当单击[Button1]按钮时,就会执行OnButton1 函数,弹出一个消息对话框。
图4.24 弹出的快捷菜单
(4) 从快捷菜单中选择Add Member Variable(添加成员变量), 在出现的对话框中定义一个CButton类对象m_btnWnd,通常 以“m_”来作为变量的开头,表示“成员”(member)的意思。 如 图4.25所示,单击[OK]按钮。
图4.25 添加成员变量
(2) 单选按钮
单选按钮的外形是在文本前有一个圆圈,当它被选中 时,单选按钮中就标上一个黑点,它可分为一般和自动两 种类型。
(3) 复选框
复选框的外形是在文本前有一个空心方框,当它被选中 时,复选框中就加上一个“ ”标记,通常复选框只有选 中 和未选中两种状态. 若复选框前面有一个灰色是“ ”,则这样的复选框 是 三态复选框,它表示复选框的选择状态是“不确定”。在 3. 按钮的消息 复 在按钮映射的消息中,常见的只有两个 :BN_CLICKED Style页面中选中“ (状态 )Tri-state (选框属性对话框的 单击按钮)和BN_DOUBLECLICKED (双击按钮 )。 ”项。
4 对话框及常用控件 (第四章 对话框和常用控件)

1.什么是对话框?它分为哪两类?这两类对话框有哪些不同?答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。
对话框分为有模式对话框和无模式对话框。
当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。
而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。
2.什么是对话框模板、对话框资源和对话框类?答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。
对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。
对话框类用于实现对话框功能。
3.对一个对话框编程一般经过几个步骤?答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性;2. 定义对话框回调函数,添加控件的事件处理函数;3. 注册对话框函数4、什么是控件?根据控件的性质可以将控件分为几类?答:在Windows中所用的按钮控件是用来实现一种开与关的输入。
常见按钮类型:按键按钮、单选按钮、复选框按钮。
5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件?答:1、先点击控件,然后在对话框上单击,2、先点击控件,然后在对话框上点住不放,画出像要的大小。
否。
6.什么是DDV/DDX技术?如何使用这种技术?答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。
DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。
7.什么是空间的通知消息?它在编程中起哪些作用?答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。
控件通过向父窗口发送控件通知消息来表明发生了某种事件。
8.什么是按钮控件?它有几种类型?答:按钮控件常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的最简便的方法。
VisualBasic常用基本控件

4.7 滚动条
2.事件 Scroll事件:在滚动条内拖动滑块时触发的事件。 (单击滚动箭头或滚动条时不发生Scroll事件); Scroll事件用于跟踪滚动条中的动态变化 Change事件:改变滚动框位置触发的事件。 Change事件则用来获得变化后滚动条的位置 (值 ) 示例
属性 Name Caption Default Cancel ToolTipText 用途 引用该对象的名称 按钮上显示的文本 默认命令按钮,Enter 默认取消按钮,Esc 解释功能
【例4-1】
对象 窗体 属性 设置
(名称) Caption FontName FontSize
(名称) Caption FontSize
ListBox控件Style取值及含义 0 1 默认,文本项旁无复选框 有复选框,可选择多项
ComboBox控件Style取值及含义 0 1 2 下拉列表+文本框 文本框+不能下拉列表 仅允许在下拉列表中选择
4.5 列表框、组合框
1.主要属性
MultiSelect属性(ListBox) :是否能够复选。 • 0:不可复选;1:简单复选;2:复杂复选 Selected属性:返回某个项目的选择状态。 • List1.selected(0)=ture
常用属性是Caption 可先画出框架,再将其它控件画到框架中;或
者“剪切”框架外的控件,“粘贴”到框架中
4.4.3 框架
【例4-5】用框架将单选按钮分组,分别用来改变文 本框中文字的字体、字的大小、字的颜色。
4.5 列表框和组合框
列表框(ListBox)可从列出的多个项目中任意选择, 可选择其中的一项或多项。 组合框(ComboBox)=文本框+列表框,用户可以像 列表框一样选择,也可直接在编辑区输入。
第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 对话框和常用控件

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

§4.5 单项选择按钮控件
单项选择按钮(RadioButton)控件是让顾客在 一组选项中选定一项且只能选中一项。若窗体内仅有 一组RadioButton控件,则可将它们简朴旳放置在窗 体内,但假如在同一窗体中有多组RadioButton时, 则需要将其放置到框架(GroupBox)控件中。
§4.6 复选框控件
MultiLIne:控制选项卡是否能够以多行旳形式显示。
Alignment:控制选项卡旳排列方式,可选值有Left、 Right、Top和Bottom四个。
§4.11 计时器控件
也被称为时钟(Timer)控件,它旳作用是按照原则 时间间隔引发计时器事件旳组件。
计时器常用属性有两个: Enabled: 设置计时器控件是否可用,可选值为True或 False
案例讲解
【案例4-2】基本控件旳使用。制作一种包括两页 选项卡旳Windows应用程序,其中一页包括进度 条和滚动条控件,另一页包括列表框和下拉框控 件。
作业:
1、掌握本章基础概念 2、掌握本章案例
Interval: 设置时间间隔值。Interval旳值须介于 1~65535之间。每单位为1ms。
计时器只有一个Tick事件,若启用Timer控件,则 每个Interval间隔就会引发一次Tick事件。
§4.12 滚动条控件
滚动条控件又可分为水平滚动条(HScrollBar) 和垂直滚动条(VScrollBar)两类。能够在应用程序 旳窗体或控件容器中水平或垂直滚动,以便查阅大 篇幅旳信息。
§4.3 命令按钮控件
命令按钮(Button)控件也是应用程序经常用 到旳控件之一,它主要接受鼠标单击或双击事件。单 击命令按钮就会触发该按钮旳Click事件,从而程序 就会进入到写好旳事件过程下。
对话框和常用控件

第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类成员函数,通过调用该//函数将显示对话框。
对话框及常用控件

统一的视觉风格
对话框的视觉风格应与应 用程序的整体风格保持一 致。
合适的色彩搭配
对话框的颜色搭配应符合 应用程序的主题和风格, 同时也要考虑色彩的对比 度和舒适度。
精美的图标和插图
对话框中可以适当地使用 图标和插图,以提高视觉 效果和用户体验。
一致性
对话框布局一致
不同对话框的布局和组件应保持一致,以提高用户对 应用程序的熟悉度和使用效率。
提示对话框
总结词
提供简短信息或警告的对话框
详细描述
提示对话框通常用于向用户显示应用程序的状态或提 供简短的通知。它包含一个标题、一条消息和一个关 闭按钮。根据需要,提示对话框还可以包含图标以强 调其重要性。
感谢观看
THANKS
按钮
总结词
用于触发特定功能的控件
详细描述
按钮是常见的交互控件,用户点击按钮后可以触发特定的功能或操作。根据功 能,按钮可分为确认、取消、提交等类型。
列表框
总结词
用于显示和选择列表项的控件
详细描述
列表框可以显示一系列的列表项,用户可以通过鼠标或键盘选择所需的列表项。根据选择方式,列表 框可分为单选列表框和多选列表框。
对话框的分类
模态对话框
模态对话框会阻塞用户对其他界面的 操作,直到对话框关闭。这类对话框 常用于需要用户做出决策或输入的情 况。
非模态对话框
非模态对话框不会阻塞用户对其他界 面的操作,用户可以在对话框打开的 同时进行其他操作。这类对话框常用 于显示信息或提供简单的选项。
对话框的使用场景
确认操作
01
复选框
总结词
用于表示选项是否被选中的控件
详细描述
复选框是一种开关控件,用户可以通过点击来选中或取消选中某个选项。多个复选框可 以组合在一起,表示多个选项的组合。Fra bibliotek单选按钮
对话框及控件

对 Student 程序,可在用户按添加菜单项/按钮时,弹出对话框,让用户输入学生的姓名 和成绩。具体操作如下: (1) 创建对话框资源 l 计 划 用 对 话框 编 辑 器 建 立 一 个 如 下 图 所 示 的 输 入 对话 框 资 源 : 在 项 目 工作 区 的 ResourceView 页中 Dialog 项上单击鼠标右键,在弹出菜单中选 Insert Dialog 项,VC 会 自动创建一个 ID 为 IDD_DIALOG1、标题为 Dialog、含 OK 与 Cancel 按钮的缺省对话 框,并打开对话框编辑器(包括对话框资源编辑窗口和控件工具栏窗口)
对话框的组成
资源和控件:
我们已经了解到,对话框实际上是一种窗口,那么它和我们已经见过的 CView 窗 口有什么不同呢?其中很重要的一个区别就在于, 对话框窗口几乎总是和 Windows 的资源
一起,这些资源标识了对话框中的元素,同时也指定了对话框的布局。由于我们可以用 资源编辑器来创建和编辑对话框资源,因此,我们可以以可视的方式迅速而有效地创建 对话框。对话框包含了一些被称为控件的元素,对话框控件包括编辑控件(即文本框)、 列表框、组合框、静态文本(即标签)、树状视图、进度指示器和滑块等等,这些对话框 的控件既可以通过 CWnd 的指针来引用(因为它们本身实际上就是窗口)。 控件通过向上级 对话框发送消息响应用户的动作,如输入了正文或按下了鼠标键等。对话框和控件有自 己相应的类,如对话框由 CDialog 类来管理,编辑框由 CEdit 类来管理。
对话框及控件
对话框(dialog box)是 GUI 的常用组件,也是其最复杂的组件,主要用于接收用户的各 种输入和选择,也可用于向用户显示信息。在对话框中可以包含文本框、编辑框、列表框、 组合框、按钮、单选钮、复选框等各种控件(control),供用户查看、输入和选择。 几乎所有的 Windows 应用程序都要借助于对话框窗口来和用户打交道,这种对话框可 以是简单的 OK 消息框, 也可以是较复杂的数据输入窗体。 对话框实际上是一个真正的窗口, 可以接受消息,而且还可以被移动和关闭,甚至可以在它的客户区中进行绘图操作。对话框 可分为“模式”和“无模式”两大类。 按工作方式不同,可将对话框分成两类: l 模式对话框(modal dialog box 模态对话框):在关闭模式对话框之前,程序不能进行其他 工作(如一般的“打开文件”对话框) l 无模式对话框(modeless dialog box 非模态对话框):模式对话框打开后,程序仍然能够 进行其他工作(如一般的“查找与替换”对话框)
对话框和控件

对话框的使用—添加对话框资源
❖ 在一个MFC应用程序中添加对话框资源,通常按下列步骤进行: ❖ (1)选择“插入”->“资源”,或按快捷键Ctrl+R打开“插入资源”对话框,
在对话框中可以看到资源列表中存在Dialog项,展开该项可以看到对话框资源 的不同类型选项。
对话框的使用—添加对话框资源
类型
对话框的使用——添加和布局控件
❖ 控件的布局
注意: (1)大多数布置控件的命令使用前,都需要用户选取多个控件,且 “主要控件”起到了关键作用。举例说明。 (2)为了便于用户在对话框内精确定位各个控件,系统还提供了网格、 标尺等辅助工具。
对话框的使用——创建对话框类
❖ 在对话框资源模板的空白区域内双击鼠标,将弹出“Adding a Class”对话框,询问是否为对话框资源创建一个新类。举 例说明。
对话框和常用控件
❖ 对话框的使用 ❖ 控件的创建和使用方法 ❖ 常用控件 ❖ 通用对话框和消息对话框
对话框的使用
在VisualC++6.0应用程序中,使用一个对话 框的一般过程是: 添加对话框资源 设置对话框的属性 添加和布局控件 创建对话框类 添加对话框代码 在程序中调用对话框
对话框的使用
❖ 资源与资源标识 Visual C++6.0将Windows应用程序中经常用 到的菜单、工具栏、对话框、图标等都视为 “资源”,并将其单独存放在一个资源文件 中。每个资源都由相应的标识符来区分,并 且可以像变量一样进行赋值。
nIDCheckButton); ❖ int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton); ❖ 其中,nIDFirstButton和nIDLastButton分别指定这组单选按钮的第一个
第四章 Web服务器控件

4.2.4 使用容器控件
例4-5利用Panel控件和LinkButton按钮控件来显示 和隐藏图片。 具体操作步骤如下: 1)在例4-1中创建的项目“example1”中再添加一 个新的窗体Panel1.aspx。 2)在Panel1.aspx的网页“设计”视图下,向该窗 体拖入一个Image控件(ImageUrl属性设为 “image1.jpg”,Width属性设置为“200px”);再 向该窗体拖入一个Panel控件(ID设置为PA1, HorizontalAlign属性分别为“Left”,ForeColor属性 设置为#FFC0C0);最后再拖入一个LinkButton控 件(ID设置为LB1,Text属性分别设为“隐藏图 片”)。
4.2.3 使用按钮控件
Button按钮控件是最常用的服务器控件之一,使 用该控件的目的是让用户根据内容作出选择或判 断,达到与用户交互的目的。 Button按钮控件的主要属性除了常见的属性之外 还有CauseValidation属性,它是用来控制该按钮 是否导致激发验证。 Button按钮控件的主要事件就是Click事件,就是 用户按下该按钮以后将会触发的事件。常常用来 完成文本的显示、表单的提交或选择的确认等。 下面来看一个例子。
表4-5 Panel控件的主要属性
属性 功能
BackImageUrl HorizontalAlign
用于在控件的背景中显示图像
用于指定子控件在面板内的水平对齐方式,取 值可以是Center、Justify、Left、NotSet和 Right
Wrap
用于确定当一行的长度超过面板的宽度时,控 件中的项是在下一行继续,还是在面板边缘 处截断
4.1 服务器控件概述
4.1.2 服务器控件的种类 2. Web服务器控件的分类 Web服务器控件拥有比HTML服务器控件更 多的功能,拥有类似XML的语法,而且使 用规则与Visual Basic控件的使用规则类似。 它不只提供文本与按钮等窗体类型的控件, 还提供了诸如DataGrid、DataList、 AdRotator、Calendar等特殊用途的控件。 返回
《Visual C++程序设计教程》第四章对话框设计和Windows常用控件

4.1 对话框应用程序介绍
1.对话框组成 对话框主要由以下两部分组成: (1) 对话框资源:定义了对话框的特性(如大小、位 置和风格等)以及对话框中每个控件的类型、位置等 属性。一般情况下,对话框资源在资源编辑器中静 态地定义,也可以用编程的方法在程序运行时动态 地创建。 (2) 对话框类:对话框类是与对话框资源相关联的, 基于CDialog类的派生类,它提供编程接口来管理对 话框。
1.通过资源编辑器添加控件 打开对话框资源编辑器弹出如图48所示的控 件工具栏之后,就可以方便地在对话框中添加 各种控件了。 (1)单击添加:在控件工具栏上单击要添加 的控件后,将鼠标移动到对话框模板上,此时 鼠标光标变成了“+”形状,在对话框上再次单 击鼠标,控件就添加到对话框模板上了。 (2)拖动添加:拖动要添加的控件到对话框 模板上,然后释放鼠标,也可以添加控件。
(2)单击“新建”按钮可以创建一个资源类型列表中指定类 型的新资源;单击“定制”按钮可以创建资源类型列表中 没有的新类型的资源;单击“导入”按钮可以将外部已有 的位图、图标等资源添加到当前应用程序中。 (3)修改对话框属性。在对话框模板的空白处右击,从弹出 的快捷菜单中选择“属性”命令,弹出如图4-3的“对话属 性”对话框。
4.列表框控件(CListBox) 列表框是一种输入控制,它可以使用户从所列的表 项中进行选择。用户可以在其中选择一个或多个项, 这与单选按钮和复选框的功能有些相近,但不同的 是,列表框中项的数目是灵活变化的,程序运行时 可往列表框中添加或删除某些项。并且,当列表框 中项的数目较多不能一次全部显示时,还可以通过 滚动条来拓展显示范围。
4_UG二次开发实用教程 第四章

intdialog_id,
UF_STYLER_item_value_type_p_tvalue
);
表4-4函数UF_STYLER_set_value()的成员说明
参数
参数描述
dialog_id
输入参数,表示被查询控件所属对话框的标识,通常是由styler对话框传递回调函数的
指明value的数据类型
value
union类型的数据,表明控件的值。注意:必须利用函数UF_STYLER_free_value释放为字符串或数组申请的内存。
表4-2对话框控件的常用属性
属性
描述
Label
控件的文本描述,一般表示控件用途;如果控件设置了位图属性,则显示为文本提示信息
Object Identifier
int reason;
const char *item_id;
int subitem_index;
int count;
int item_attr;
int indicator;
UF_STYLER_value_t value;
};
表4-1结构UF_STYLER_item_value_type_s的成员说明
4.1
4.1
UG的UIStyler应用模块提供给用户可视化建立UG风格对话框的功能。在UG主菜单中选择菜单项“Application→User Interface Styler...”,进入UIStyler应用模块,UIStyler可视化界面如图4-1所示。
图4-1UIStyler可视化界面
4.1
UIStyler可视化界面包括基本对话框、对象浏览器、属性编辑器、控件栏和控件编辑工具五部分。用户在控件栏中选择控件后放置在基本对话框中,通过对象浏览器查看在基本对话框中设置的控件对象信息、利用控件编辑工具调整控件布局,通过属性编辑器编辑对话框及指定控件的属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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地址
int AddString( LPCTSTR lpszItem ); int InsertString( int nIndex, LPCTSTR lpszItem );
(2) 删除列表项
int DeleteString( UINT nIndex ); void ResetContent( ); // nIndex指定要删除的列表项的索引
用户定制控件
扩展组合框
2.8 工具箱中的常用控件
根据控件的特性和功能,一般可将其分为三类:Windows公共 控件、ActiveX控件以及MFC新增的一些控件等。下表列出了一些常 用控件类。
2.8.1 静态控件和按钮
一个静态控件是用来显示一个字符串、框、矩形、图标、位图或 增强的图元文件。它可以被用来作为标签、框或用来分隔其它的控件 。一个静态控件一般不接收用户输入,也不产生通知消息。 本( 在对话框编辑器的控件工具栏中,属于静态控件的有:静态文 )、组框( )和静态图片( )三种。
void CListBoxDlg::OnSelchangeList1() { CListBox::GetCurSel来获取这个结果 int nCount = m_list.GetSelCount(); return; // 开辟缓冲区 // 将各个选项的索引号内容存放在缓冲区中 // 获取用户选中的项数
(3)创建一个与ID_DIALOG_MODAL相关联的对话框类 (4)在主对话框资源中的确定事件中添加如下代码:
void CDialogModalDlg::OnOK() { CSimpleDialog dialog; dialog.DoModal(); }
2.2 对话框的常用操作
非模态对话框要首先调用Cdialog类的Create方法进行创建,然 后通过ShowWindows方法显示,而在销毁时要使用Cdialog类的 DestroyWindow方法 BOOL Create(LPCTSTER lpszTemplate,CWnd *pParentWnd) BOOL ShowWindow(int nCmdShow) //表示窗口的显示状态 BOOL DestroyWindow();//该方法销毁窗口
m_list.GetText(buffer[i], str);
allStr = allStr + "[" + str + "]"; } delete []buffer; // MessageBox(allStr); }
// 获得各个索引的项目文本
// 处理项目文 // 释放内存 // 处理获得的文本
图 上网问卷调查对话框
2.8.2 编辑框
1.编辑框 编辑框是一个让用户从键盘输入和编辑文本的矩形窗口,用户可 以通过它,很方便地输入各种文本、数字或者口令,也可使用它来编 辑和修改简单的文本内容。当编辑框被激活且具有输入焦点时,就会 出现一个闪动的插入符,表明当前插入点的位置。 当编辑框的文本修改或者被滚动时,会向其父窗口发送一些消息
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL ); 例:构造一个文件打开对话框
CFileDialog dialog(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"All files(*.*)|*.*||",AfxGetMainWnd()); CString str; if(dialog.DoModal()==IDOK){ str = dialog.GetPathName();
(5) 列表框的多项选择 if (nCount == LB_ERR)
int *buffer = new int[nCount]; m_list.GetSelItems(nCount,buffer); CString allStr = NULL, str; for (int i=0; i<nCount; i++) {
标尺
控件工具栏
基准线
布局工具栏
2.2 对话框的常用操作
2.显示对话框 模态对话框可以声明一个对话框对象,然后调用该对象的 DoModal方法进行显示,要关闭模态对话框可以调用Cdialog类的 OnOk或OnCancel方法。 例:创建一个对话框,当用户点击确定是显示模态对话框
(1)创建一个基于对话框的应用程序,项目名称为DialogModal (2)在资源视图中心创建一个对话框,命名在ID_DIALOG_MODAL
MessageBox(str);
}
2.7 通用对话框
2.颜色选择对话框 CColorDialog对象是一个拥有一个颜色列表的对话框,用户可以 在其中选择颜色,也可以定制颜色
Dialog dlg; if(IDOK==dlg.DoModal()){ COLORREF col = dlg.GetColor(); }
2.7 通用对话框
通用对话框是由操作系统提供的任何应用程序都可以获得的对话 框,在visual c++中,对这些对话框进行了封装。常用的通用对话框有 :文件对话框、查找/替换对话框、颜色对话框等。
2.7 通用对话框
1.打开文件对话框 CFileDialog类对对话框进行了封装,文件对话框为“打开”和“ 另存为”文件提供了一个方便的接口。CFileDialog根据构造函数的参数 决定是创建打开还是另存为对话框。
2.1 对话框和控件概述
1.模态对话框 当对话被弹出时,用户必须在对话框中进行相应的操作,在退出 对话框之前,对话框所在的应用程序不能继续执行。例如Windows 的各种应用软件中的Open File 对话框,用户不能在应用程序的其它 两者区别: 地方工作,直到对话框关闭。 创建时,模式对话框由系统自动分配内存空间,对话框退出时 ,对话框对象自动删除。无模式对话框需要来指定内存,退出时 2.非模态对话框 还需删除对话框对象。 对话框保留在屏幕的同时,用户还可以在应用程序其它窗口中进 退出时,两种对话框所使用的终止函数不一样。模式对话框 通过调用CDialog:: EndDialog来终止,无模式对话框则是调用 行工作的对话框称为非模态对话框。例如,Word字处理软件中的 CWnd::DestroyWindow来终止。 Find 和Replace对话框就是非模态对话框的一个很好的例子
图 静态图片控件的General和Style属性对话框
2.8.1 静态控件和按钮
示例:设置静态文本控件文本和背景颜色
2.8.1 静态控件和按钮
在Windows中所用的按钮是用来实现一种开与关的输入,常见 的按钮有3种类型:按键按钮、单选按钮、复选框按钮
图 按钮的不同类型
2.8.1 静态控件和按钮
2.8.2 编辑框
2. 编辑框的基本操作 (1)口令设置 CEdit::SetPasswordChar 来定义自己的口令字符,其函数原型
如下:void SetPasswordChar( TCHAR ch );
(2)设置编辑框的页面边距 应用程序可通过调用成员函数CEdit::SetMargins来实现,这个函 数的原型如下: void SetMargins( UINT nLeft, UINT nRight ); 其中,参数nLeft和nRight分别用来指定左、右边距的像素大小。
方法 GetPathName GetFileName GetFileExt GetFileTitle 说 明
用于返回用户选择文件的完整路径 用户返回用户选择文件的名称包括扩展名 用于返回文件的扩展名 用户返回文件输入框中的文件名,不包括扩展名
2.7 通用对话框
CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL,