第四章对话框和常用控件

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

2.7 通用对话框
通用对话框是由操作系统提供的任何应用程序都可以获得的对话 框,在visual c++中,对这些对话框进行了封装。常用的通用对话框有 :文件对话框、查找/替换对话框、颜色对话框等。
2.7 通用对话框
1.打开文件对话框 CFileDialog类对对话框进行了封装,文件对话框为“打开”和“ 另存为”文件提供了一个方便的接口。CFileDialog根据构造函数的参数 决定是创建打开还是另存为对话框。
按钮选中操作 最常用的按钮操作是设置或获取一个按钮或多个按钮的选中状态
void SetCheck( int nCheck );
int GetCheck( ) const; 其中,nCheck和GetCheck函数返回的值 可以是:0表示不选中,1表示选中,2表示不确定(仅用于三态按钮) 对于多个单选按钮的选中状态的设置或获取,需要使用 CWnd类的成员函数 void CheckRadioButton( int nIDFirstButton, int
图 静态图片控件的General和Style属性对话框
2.8.1 静态控件和按钮
示例:设置静态文本控件文本和背景颜色
2.8.1 静态控件和按钮
在Windows中所用的按钮是用来实现一种开与关的输入,常见 的按钮有3种类型:按键按钮、单选按钮、复选框按钮
图 按钮的不同类型
2.8.1 静态控件和按钮
标尺
控件工具栏
基准线
布局工具栏
2.2 对话框的常用操作
2.显示对话框 模态对话框可以声明一个对话框对象,然后调用该对象的 DoModal方法进行显示,要关闭模态对话框可以调用Cdialog类的 OnOk或OnCancel方法。 例:创建一个对话框,当用户点击确定是显示模态对话框
(1)创建一个基于对话框的应用程序,项目名称为DialogModal (2)在资源视图中心创建一个对话框,命名在ID_DIALOG_MODAL
(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.8 工具箱中的常用控件
根据控件的特性和功能,一般可将其分为三类:Windows公共 控件、ActiveX控件以及MFC新增的一些控件等。下表列出了一些常 用控件类。
2.8.1 静态控件和按钮
一个静态控件是用来显示一个字符串、框、矩形、图标、位图或 增强的图元文件。它可以被用来作为标签、框或用来分隔其它的控件 。一个静态控件一般不接收用户输入,也不产生通知消息。 本( 在对话框编辑器的控件工具栏中,属于静态控件的有:静态文 )、组框( )和静态图片( )三种。
m_list.GetText(buffer[i], str);
allStr = allStr + "[" + str + "]"; } delete []buffer; // MessageBox(allStr); }
// 获得各个索引的项目文本
// 处理项目文 // 释放内存 // 处理获得的文本
第二章 对话框和常用控件
2.1 对话框和控件概述
对话框是一种用户界面,它为用户提供了一种标准的处理数据的 方法。 从本质来说,对话框实际上是一个窗口,在MFC层次结构中, 对话框实际上是封装在Cdialog中,Cdialog类是CWnd类的派生类, 它是所有对话框的基类 对话框由两部分组成:对话框资源和对话框类。 控件是在系统内部定义的用于和用户交互的基本单元。
MessageBox(str);
}
2.7 通用对话框
2.颜色选择对话框 CColorDialog对象是一个拥有一个颜色列表的对话框,用户可以 在其中选择颜色,也可以定制颜色
CColorDialog dlg; if(IDOK==dlg.DoModal()){ COLORREF col = dlg.GetColor(); }
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();
int AddString( LPCTSTR lpszItem ); int InsertString( int nIndex, LPCTSTR lpszItem );
(2) 删除列表项
int DeleteString( UINT nIndex ); void ResetContent( ); // nIndex指定要删除的列表项的索引
3.控件的对齐
4.设定控件的Tab键次序
2.5为对话框添加成员变量和成员函数
1.添加成员变量
2.添加成员函数
2.5为对话框添加成员变量和成员函数
3.添加消息处理函数
2.6 使用消息对话框确认操作
消息对话框是一种简单的对话框,不需要用户自己创建就可以直 接使用
int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType );
2.8.2 编辑框
2. 编辑框的基本操作 (1)口令设置 CEdit::SetPasswordChar 来定义自己的口令字符,其函数原型
如下:void SetPasswordChar( TCHAR ch );
(2)设置编辑框的页面边距 应用程序可通过调用成员函数CEdit::SetMargins来实现,这个函 数的原型如下: void SetMargins( UINT nLeft, UINT nRight ); 其中,参数nLeft和nRight分别用来指定左、右边距的像素大小。
2.2 对话框的常用操作
1.创建对话框资源 在Visual C++中,用户通过工作区窗口可以方便的创建对话框资 源。主要有两种方式:(1)利用工作区的“Resource View”选项卡创 建对话框资源;(2)通过工作区的“ClassView”选项卡创建对话框 资源。
默认对话框 模板 默认对话框 资源ID号
nIDLastButton, int nIDCheckButton );
int GetCheckedRadioButton( int nIDFirstButton, int nIDLastButton );
2.8.1 静态控件和按钮
示例:制作问卷调查 问卷调查是日常生活中经常遇到的调查方式。例如,下图就是一 个问卷调查对话框,它针对“上网”话题提出了三个问题,每个问题 都有四个选项,除最后一个问题外,其余都是单项选择。
(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();//该方法销毁窗口
图 上网问卷调查对话框
2.8Hale Waihona Puke Baidu2 编辑框
1.编辑框 编辑框是一个让用户从键盘输入和编辑文本的矩形窗口,用户可 以通过它,很方便地输入各种文本、数字或者口令,也可使用它来编 辑和修改简单的文本内容。当编辑框被激活且具有输入焦点时,就会 出现一个闪动的插入符,表明当前插入点的位置。 当编辑框的文本修改或者被滚动时,会向其父窗口发送一些消息
2.3 对话框常用属性介绍
2.4 在对话框中操作控件
1.添加控件的方法 在控件工具栏中单击某控件,此时的鼠标箭头在对话框内变成“十 ”字形状;在对话框指定位置单击鼠标左键,则此控件被添加到对话 框的相应位置,再拖动刚添加控件的选择框可改变其大小和位置。 2.控件的选取
(a)
(b)
2.4 在对话框中操作控件
void CListBoxDlg::OnSelchangeList1() { CListBox::GetCurSel来获取这个结果 int nCount = m_list.GetSelCount(); return; // 开辟缓冲区 // 将各个选项的索引号内容存放在缓冲区中 // 获取用户选中的项数
2.8.3列表框
(3) 查找列表项。
int FindString( int nStartAfter, LPCTSTR lpszItem ) const;
int FindStringExact( int nIndexStart, LPCTSTR lpszFind ) const;
(4) 列表框的单项选择,当选中列表框中某个列表项,用户可以使用
方法 GetPathName GetFileName GetFileExt GetFileTitle 说 明
用于返回用户选择文件的完整路径 用户返回用户选择文件的名称包括扩展名 用于返回文件的扩展名 用户返回文件输入框中的文件名,不包括扩展名
2.7 通用对话框
CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL,
2.8.3 列表框
1. 列表框的风格和消息 按性质来分,列表框有单选、多选、扩展多选以及非选四种类型
图 不同类型的列表框
2.8.3 列表框
当列表框中发生了某个动作,如用户双击选择了列表框中某一项 时,列表框就会向其父窗口发送一条通知消息。
表 列表框的通知消息
2.8.3列表框
列表框的项除了用字符串来标识外,还常常通过索引来确定。索 引表明项目在列表框中排列的位置,它是以0为基数的,即列表框中 第一项的索引是0,第二项的索引是1 (1) 添加列表项
2.1 对话框和控件概述
1.模态对话框 当对话被弹出时,用户必须在对话框中进行相应的操作,在退出 对话框之前,对话框所在的应用程序不能继续执行。例如Windows 的各种应用软件中的Open File 对话框,用户不能在应用程序的其它 两者区别: 地方工作,直到对话框关闭。 创建时,模式对话框由系统自动分配内存空间,对话框退出时 ,对话框对象自动删除。无模式对话框需要来指定内存,退出时 2.非模态对话框 还需删除对话框对象。 对话框保留在屏幕的同时,用户还可以在应用程序其它窗口中进 退出时,两种对话框所使用的终止函数不一样。模式对话框 通过调用CDialog:: EndDialog来终止,无模式对话框则是调用 行工作的对话框称为非模态对话框。例如,Word字处理软件中的 CWnd::DestroyWindow来终止。 Find 和Replace对话框就是非模态对话框的一个很好的例子
2.8 工具箱中的常用控件
为了方便开发人员进行界面布局,Visual C++开发环境提供了一 个控制面板窗口,其中包含了各种常用的控件。
控件的选择 静态文本 组框 复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图 标签 复合编辑 月历 静态图片 编辑框 按钮 单选框 列表框 垂直滚动条 进展条 热键 树形视图 动画 日期选择 IP地址
相关文档
最新文档