Windows程序设计 第3章 对话框和常见控件

合集下载

第3章 Windows窗体与控件

第3章 Windows窗体与控件

3.1. 5 创建应用程序的操作界面
5. 设置所有控件的Tab键顺序索引
• Tab键顺序是指当用户按下Tab键时,焦点在控件间移动 的顺序。每个窗体都有自己的Tab键顺序,每个控件在窗体 上也都有唯一的Tab键顺序索引。默认状态下,控件在窗体 上的Tab键顺序索引与建立控件的顺序一致。如果要设置窗 体上控件的Tab键顺序索引,可以分别对每个控件设置其 TabIndex属性,也可以集中设置所有控件的Tab键顺序索引。 • 要集中设置所有控件的Tab键顺序索引,可以选择菜单 【视图|Tab键顺序】命令。如果需要改变多个控件的Tab键 顺序索引,按照想设置的顺序依次单击各个控件。【Tab键 顺序】命令是一个切换命令,因此设置好所有控件的Tab键 顺序索引之后,再次选择【Tab键顺序】命令即可结束Tab键 顺序索引的设置。
目录
3.1 窗体 3.2 几种常用控件 3.3 本章小结
3.1 窗体
• 窗体(Form)就是平常所说的窗口,各种控件对象必须建 立在窗体上。窗体对象是Visual C#应用程序的基本构造 模块,是运行应用程序时与用户交互操作的实际窗口。窗 体有自己的属性、方法和事件,用于控制其外观和行为。
• 3.1.1 窗体的结构
3.1. 5 创建应用程序的操作界面
3. 调整控件的尺寸和位置
• 调整控件的尺寸和位置,可以通过设置控件的相应属性 来实现。但在要求的精确度不高的情况下,最快捷的方法是 在窗体设计器中直接用鼠标调整控件的尺寸和位置。 • 用鼠标调整控件尺寸的步骤如下: (1) 用鼠标单击需要调整尺寸的控件,选定的控件上出现8 个尺寸手柄。 (2) 将鼠标指针定位到尺寸手柄上,当鼠标变为双向箭头时 按下鼠标左键,拖动该尺寸手柄直到控件达到所希望的大 小为止。控件角上的4个尺寸手柄可以同时调整控件水平 和垂直方向的大小,而边上的4个尺寸手柄调整控件一个 方向的大小。 (3) 松开鼠标左键。 • 提示:也可按Shift键加上箭头键,来调整选定控件的尺寸。

最新常用WINDOWS窗体控件PPT课件

最新常用WINDOWS窗体控件PPT课件

§4.16 对话框控件
对话框控件是一个总体的概念,提供了 Windows操作系统下的标准对话框。具体的可细 分为打开文件对话框(OpenFileDialog)、保存文 件对话框(SaveFileDialog)、文件夹浏览对话框 (FolderBrowserDialog)、字体对话框 (FontDialog)、颜色对话框(ColorDialog)、打 印对话框(PrintDialog)和打印预览对话框 (PrintPreviewDialog)等。
日期控件常用属性表
常用属性


BoldedDates 使用粗体标注出来的日期,该属性为一集合
Dock
控制日历表的位置
MaxDate
日历所能显示的最大日期,默认为9998-12-31
MinDate
日历所能显示的最小日期,默认为1753-1-1
ShowToday 是否将当前日期用红色圈住出来
§4.14 进度条控件
描述 列表框名称 为列表框添加选项 提供多种选择模式供列表框使用 获取或设置ListBox中当前选定项的索引,索引值从0开始
SelectedItem SelectedIndices SelectedItems Sorted Text
获取或设置ListBox中当前选定项的内容值 获取一集合,该集合包含ListBox中所有选定项的索引 获取一集合,该集合包含ListBox中所有选定项的内容值 控制各选项是否按字母顺序排列 获取被选中列表项的值
进度条(ProgressBar)控件用来显示事务处 理的进度。比如执行一个耗时较多的操作,通 过进度条可以显示操作处理的进度。 ProgressBar通过在水平条中显示适当数目的矩 形来指示进程的进度。进程完成时,进度条被 填满。

对话框和常用控件

对话框和常用控件
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;

Windows窗体与控件(三)

Windows窗体与控件(三)


控件的命名规则
图 控件命名
lbl
Stu Name
lblStuName 控件名称 姓名(Name) 学生(Student) Label控件
下表 列出了常用控件名的前缀约定。
控件的命名规则
图 控件命名
下表 列出了常用控件名的前缀约定。
文本框TextBox
• TextBox(文本框)控件是程序界面上的主要输入对象, 有时也用于输出。其主要功能是接受用户输入的信息,或显 示系统提供的文本信息。在程序运行时,用户可以在文本框 中编辑文本。 • 文本框具有标签的大多属性,如Name、BackColor、 BorderStyle、Enabled、Font、ForeColor、Location、 Locked、Size、Text、TextAlign、Visible等属性。 • 文本框还有一些自己特有的属性,如MaxLength(最大长 度)、Multiline(多行)、PasswordChar(密码字符)、 ReadOnly(只读)、ScrollBars(滚动条)、SelectedText (选定的文本)、SelectionStart(选择起始点)、 SelectionLength(选择长度)、TextLength(文本长度)、 WordWrap(文本换行)等。
6.文本框的常用事件

• 【例】 文本框与按钮的简单应用。
控件的命名规则
• 窗体和控件都有自己的名称,可以通过Name属性进行 命名。为了提高控件名称的可读性,建议在为控件命名时, 在控件名称前面加上控件的类型名称缩写作为前缀,例如 窗体(frm)、标签(1b1)、按钮(btn)等。
紧跟在 3 个小写字母后面的则是该控件名称的命名, 第一个字母建议大写,其他的使用小写;若有多个单词组 成对象名称,则建议每个单词的首字母都采用大写。例如, 有一个要显示“学生姓名”文本的 Label 控件,其命名如 图所示。

第3章 Windows窗体常用控件

第3章 Windows窗体常用控件

3.4
列表类控件
2.选择列表框控件的常用方法
除了继承自列表框控件的常用方法外,选择列表框还有如下两种常用 方法:
(1)GetItemChecked(选项索引值):该方法用于获取选择列表项
是否处于选中状态,其返回值有两种: ●True:选项被选中; ●False:选项未被选中。 (2)SetItemChecked(选项索引值):该方法用于设置选择列表项 的选中状态,有True和False两种返回值。
3.4
列表类控件
2.选择列表框控件的常用属性
(1)CheckOnClick
(2)CheckedItenms (3)GetItemChecked(i)
(4)SetItemChecked
3.组合框控件的常用 (1)DropDownStyle
(2)Max件的常用事件
列表类控件
列表类控件包括列表框(ListBox)、选择列表框(CheckedListBox)
和组合框(ComboBox,也称下拉列表框),它们在工具箱中的图标分别为
3.4
3.4.2
列表类控件
列表类控件的常用属性
1.列表框控件的常用属性
(1)Item (2)MultiColumn和ColumnWideth (3)SelectedIndex (4)SelectedItem (5)SelectionMode (6)SelectedItems
1.选择框控件的常用事件 选择框控件的常用事件有Click、SelectedIndexChanged和
SelectedValueChanged,它们都是在选中列表项时触发。其中
SelectedIndexChanged事件是选择框控件的默认事件,它和 SelectedValueChanged事件一样,只要列表项发生变化就会被触发;而

Visual_Basic程序设计课件——第三章

Visual_Basic程序设计课件——第三章

【例题】移动对象,程序运行时使命令按钮移到窗体 的中心位置。
TextHeight和TextWidth方法
TextHeight方法和TextWidth方法用于帮助设置坐标,作用 为返回一个文本字符串的高度和宽度值。 TextHeight方法语法格式为: [对象名].TextHeight(字符串) TextWidth方法语法格式为: [对象名].TextWidth(字符串)
Spc函数
Spc函数也可以对输出进行定位,作用是提供n个空格键。 Spc函数语法格式为:Spc(<n>) 例如:Print “a” ;Spc(10);“b”;Spc(5);“c” 输出:a b c 说明: 1、参数n是一个数值表达式。 2、Spc函数与其他输出项之间用分号隔开。 3、Spc函数和Tab函数的作用相似,可以相互替代,不同的是,Tab函数 从对象的左端开始计数,而Spc函数只表示输出项之间的间隔。
输出信息对话框
MsgBox函数可以弹出一个带有若干按钮的对话框,并在对话 框中显示询问消息,等待用户做出选择,并返回一个整数值, 告诉用户单击哪一个按钮。 MsgBox函数的语法格式: 变量=MsgBox(<信息内容>[,<对话框类型>[,<对话框标题 >]]) 说明: 1、信息内容是在对话框中出现的提示文本。在信息内容中 使用硬回车符(CHR(13))可以使文本换行。对话框的高度 和宽度随着信息内容的增加而增加,最多可有1024个字符。 2、对话框类型指定对话框中出现的按钮和图标,一般有3个 参数。其取值和含义如下:
CurrentX和CurrentY属性
CurrentX和CurrentY表示当前输出位置的横坐标与纵坐标。
文本属性
①字体(FontName) 格式为:FontName[=“字体类型”] ②字号 格式为:FontSize[=“点数”] 注:“点数”用来设定字体的大小,默认情况下,系统使用最小的字 号:“点数”为8。 ③斜体 格式为:FontItalic[=Boolean] 注:当Boolean值为True时,文本以斜体字输出,Boolean默认为False。 ④粗体 格式为:FontBold[=Boolean] 注:当Boolean值为True时,文本以粗体字输出,Boolean默认为False。

Windows程序设计-对话框应用程序

Windows程序设计-对话框应用程序
例如:使用Office中Word和PPT等应用软件
• 遇到的现象: 当打开一个模态对话框时,用户只能与该模
态对话框进行交互,而应用程序的其他界面都得 不到用户的输入信息。 • 对上述现象的分析:
由于Windows是消息驱动机制的,而模态对话 框产生后,应用程序没有处理消息。这是因为模 态对话框产生后会屏蔽其他窗体的消息。 下面将采用MFC和Windows API来实现这种模态对话 框!
为”IDD_MODAL_DIALOG”; 4)定义对话框的消息处理过程; 5)为”IDC_CREATE_DIALOG”添加消息响应
4)定义对话框的消息处理过程
5)为”IDC_CREATE_DIALOG”添加消息响应
• 特点:&不2会.2 垄非断模用态户对的话输框入,用户仍然可以使用 其他的窗口。例如:word中的查找、替换窗口。
这两个对话框都是通过CFileDialog类来实现的。
CFileDialog类的关键成员函数: GetFileExt:取得所选文件的扩展名; GetFileName:取得所选文件的名称,不包含扩展名; GetFileTitle:取得所选文件的全名; GetFolderPath:取得所选文件的路径; GetNextFolderPath:取得下一个文件的路径,多选时 GetPathName:取得所选文件的路径全名; GetStartPosition:取得所选的第一个文件的定位信息,多选时用。
2.1.2 实例:使用MFC实现非模态对话框
1)使用应用程序AppWizard创建基于对话框的MFC程序; 2)使用资源编辑器,在主界面添加一个按
钮”IDC_CREATE_DIALOG”用来创建模态对话框; 3)在“资源视图”中添加一个对话框,ID
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

树形控件
树形控件(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是对话框所属的父窗口。
组合框
组合框(Combo Box)窗口是由一个输入框和一个列表 框组成的。创建一个组合窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
静态文本控件
静态文本控件的功能比较简单,可作为显示字符串、图标、位图 用。创建一个窗口可以使用成员函数: BOOL CStatic::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中,dwStyle将指明该窗口的风格,除了子窗口常用的风格 WS_CHILD,WS_VISIBLE外,我们可以针对静态控件指明专门的风格。 SS_CENTER,SS_LEFT,SS_RIGHT 指明字符显示的对齐方式。 SS_GRAYRECT 显示一个灰色的矩形 SS_NOPREFIX 如果指明该风格,对于字符&将直接显示,否则 &将作为转义符,&将不显示而在其后的字符将有下划线,如果需要 直接显示&必须使用&&表示。 SS_BITMAP 显示位图 SS_ICON 显示图标 SS_CENTERIMAGE 图象居中显示 利用成员函数SetWindowText 设置控件显示的文本GetWindowText 得 到控件当前显示的文本,利用成员函数SetIcon设置控件显示的图标 GetIcon得到控件当前显示的图标,利用成员函数SetBitmap 设置控 件显示的位图,GetBitmap得到控件当前显示的位图。
树形控件
树形控件(TreeCtrl)和下面要讲的列表控件(ListCtrl) 在系统中大量被使用,例如Windows资源管理器就是一个典 型的树形控件例子。 树形控件可以用于树形的结构,其中有一个根接点(Root) 然后下面有许多子结点,而每个子结点上有允许有一个或多 个或没有子结点。MFC中使用CTreeCtrl类来封装树形控件的 各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
列ห้องสมุดไป่ตู้框
列表框(ListBox)窗口用来列出一系列的文本,每条文 本占一行。 创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
编辑框控件
编辑框(Edit Box)控件Edit窗口是用来接收用户输 入最常用的一个控件。创建一个输入窗口可以使用成员 函数: BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
有模式对话框
对话框是大多数Windows应用程序的重要的用户界面组 件。在Windows开发中弹出对话框是一种常用的I/O手段,我 们需要将一个自建并编辑好的对话框保存在Visual C++应用工 程的资源文件中。Visual C++提供了对话框编辑工具,我们利 用编辑工具可以方便的添加各种控件到对话框中去,而且利 用ClassWizard可以方便的生成新的对话框类和映射消息。我 们可以用对话框资源编辑器创建对话框模板,对话框资源编 辑器将编辑的模板以扩展名.res文件保存在对话框模板资源中。 然后基于对话框的模板用ClassWizard创建一个从CDialog 类 派生的对话框类,最后建立该类对象,建立对话框。
对话框中的数据交换和数据检查
MFC提供两种方法在对话框中进行数据交换和数据检查(Dialog Data Exchange/Dialog Data Validation),数据交换和数据检查的基本思想是 将某一变量和对话框中的一个控件窗口进行关联,然后通过调用BOOL UpdateData( BOOL bSaveAndValidate = TRUE )来指示MFC将变量中数 据放入控件窗口还是将控件窗口中数据取到变量中并进行合法性检查。 在进行数据交换时一个控件窗口可以和两种类型的变量相关联,一 种是控件(Control)对象,比如说按钮控件窗口可以和一个CButton对 象相关联,这种情况下我们可以通过该对象直接控制控件窗口,当然我 们可以使用GetDlgItem(IDC_CONTROL_ID)来得到窗口对象指针;一 种是内容对象,比如说输入框可以和一个CString对象关联,也可以和 一个UINT类型变量关联,这种情况下我们可以直接设置或获取窗口中 的输入内容。
模式对话框实现
对话框是一个特殊的窗口,主要用于用户的数据输入。 由于对话框是窗口,所以它和其它窗口一样响应消息。尽管 一般窗口处理大量消息,而一般对话框只处理两种消息: WM_INITDIALOG和WM_COMMAND。当对话框窗口被创 建后,在对话框显示之前,对话框先接收消息WM_CREATE, 然后响应消息WM_INITDIALOG。WM_INITDIALOG消息 在对话框窗口创建之后并且已初始化了所有对话框里的控件 以后到达。对话框窗口获得WM_INITDIALOG消息之后将处 理派生类中的OnInitDialog()消息处理函数。在这里我们可以 修改控件数据,不过修改控件数据要在对话框显示之前。
而数据检查是在一个控件窗口和一个内容对象相关联时 在存取内容时对内容进行合法性检查,比如说当一个输入 框和一个CString对象关联时,我们可以设置检查CString的 对象的最长/最小长度,当输入框和一个UINT变量相关联时 我们可以设置检查UINT变量的最大/最小值。在BOOL UpdateData( BOOL bSaveAndValidate = TRUE )被调用后, 合法性检查会自动进行,如果无法通过检查MFC会弹出消 息框进行提示,并返回FALSE。 设置DDX/DDV在Visual C++中非常简单,ClassWizard 可以替我们完成所有的工作,我们只需要打开ClassWizard 并选中Member Variables页,我们可以看到所有可以进行关 联的控件窗口ID列表,双击一个ID会弹出一个添加变量的 对话框,然后填写相关的信息后按下确定按钮就可以了。 然后选中刚才添加的变量在底部的输入框中输入检查条件。
Windows标准控件 标准控件
MFC 提供了一组与 Microsoft Windows 所提供的标准控 件窗口相对应的类。这些类主要有:静态类、按钮类、 编辑控件类、滚动条类、列表框类和组合框类等。每个 Windows 控件类都封装了一个Windows控件,并提供了与基本控件 之间的成员函数用户接口。使用一个控件对象的成员函 数,就可以获取和设置控件的值或状态,并响应由该控 件送给其父窗口(通常为一个对话框)的各种标准消息。 控制是Control 的意译,又叫控件,以下我们对控制和 控件不加区分。除了上述标准的Windows 控制之外, MFC还提供了以位图作标签的按钮等控制。
Windows对话框有两种基本类型: 有模式对话框(Model Dialog) 无模式对话框 (Modeless Dialog)。 有模式对话框使父窗口操作无效,不允许用户回到父窗口操 作。当有模式对话框工作时,对话框消息处理循环从应用队 列中直接接收消息传递给对话框函数,WinMain函数收不到消 息。与有模式对话框相反,无模式对话框不妨碍父窗口的正 常工作,无模式对话框接收WinMain函数消息循环的输入,它 没有自己的消息循环。 标准控件也是一些行为标准化了的窗口,一般用在对话框或 其它窗口中充当与用户交互的窗口元素。在Visual C++中,可 以使用的控件分成三类:Windows标准控件,ActiveX控件, 其它MFC控件类。在本章中我们仅讲述Windows标准控件。 所讲的内容主要包括各个控件的使用及相应的使用技巧。
相关文档
最新文档