页数:39页文件大小:297.8 KB来源: VisualC++ppt课件
本课件对应课程第6章基于对话框的应用程序,先说明对话框本质也是窗口、由模板资源与对话框类两部分构成,并给出设计步骤、初始化方式与DDX数据交换机制及DoDataExchange、DDX_Text的用法,随后依次讲解按钮、滚动条、列表框、编辑框与组合框五类标准控件的创建方法、常用成员函数与编程示例,配合数据采集模拟演示程序帮助理解控件与用户的交互。
6.1概述基于对话框的应用程序用CDialog派生类对象作为应用程序的主窗口。 基于对话框的应用程序框架可由Visual C++的应用向导自动生成,非常方便。 对话框(Dialog)实际上也是一个窗口。 在MFC中,对话框的功能被封装在CDialog类中,CDialog类是CWnd类的派生类。
6.1概述对话框设计:对话框模板设计和对话框类设计1、向项目中添加对话框模板资源;
6.1概述对话框的初始化1、构造函数:针对对话框的数据成员进行初始化。
在OnInitDialog()函数中做一些影响对话框外观的初始化工作。
6.1概述对话框的数据交换机制(DDX)控件与用户的数据交流过程:1、在对话框类中加入与控件对应的数据成员;
MFC提供了CDataExchange类来实现对话框类与控件之间的数据交换(DDX)。
6.1概述对话框的数据交换机制(DDX)数据交换机制通过CDialog::DoDataExchange()函数来完成,其原型为
virtual void DoDataExchange (CDataExchange* pDX ); 其中参数pDX为指向CDataExchange类对象的指针,框架使用该对象建立数据交换内容。6.1概述对话框的数据交换机制(DDX)---数据交换函数
void DDX_Text ( CDataExchange* pDX,int nIDC, float&value ); 其中:参数pDX:指向CDataExchange对象的指针; 参数nIDC:对话框对象中的编辑控件的标识符; 参数value:对话框中的数据成员的引用。6.1概述---控件对话框与控件是密不可分的。 Windows提供了一批基本控件,如编辑控件(Edit Box)、组合框控件等,可解决大部分用户输入界面设计的需求。
6.1概述---演示程序【例6-1】设计数据采集模拟应用程序。
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
6.1概述---演示程序【例6-1】设计数据采集模拟应用程序,设计要求如下:1、使用定时器模拟产生实时数据;
6.2按钮控件
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
6.2按钮控件---创建按钮控件
CButton类的成员函数Create负责创建按钮控件,该函数的原型为:BOOL Create (LPCTSTR lpszCaption, 第14页:按钮消息与类型
- 6.2按钮控件---创建按钮控件1
- 按钮控件消息映射宏ON_BN_CLICKED
- ON_BN_DOUBLECLICKED2
- 常见的按钮控件复选框:常用于只有两种完全相反状态的情况下
- 单选按钮
- 适用于同一组属性相同的数据中选一个数据;
- 下压式按钮
- 适用于消息的发送;
- 分组框
- 没有太多的操作,只是在窗口中划分区域范围。
第15页:创建按钮示例
6.2按钮控件---创建按钮控件程序举例:CButton *pButton = new CButton();
CRect rt(10,10,70,30); pButton->Create(“确定”,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,rt, this, IDB_DEMO);
第16页:按钮控件编程
6.2按钮控件---按钮控件编程演示按钮控件的使用方法,重点说明单选按钮的使用方法。
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
第17页:单选按钮使用要点
6.2按钮控件---单选按钮同一组中的单选按钮的ID值必须连续; 同一组中的单选按钮关联同一个整型变量; 每组的第一个单选按钮设置Group属性。
第18页:6.3 滚动条控件
- 6.3滚动条控件滚动条是一个交互式的
- 高度可视化的控件,它包括一个滑块
- 滚动条的两端的按钮等
滚动条控件与属于窗口的滚动条是不一样的。
- 滚动条控件是由用户创建
- 管理和释放的,属于窗口的滚动条是由该窗口创建
- 管理和释放的
第19页:CScrollBar类
6.3滚动条控件---CScrollBar类
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
第20页:创建与初始化滚动条
6.3滚动条控件---创建与初始化创建CScrollBar对象的一般步骤:(1)用C++关键字new和构造函数CScrollBar()为一个ScrollBar类分配一个实例。 (2)初始化CScrollBar对象,将一个Windows滚动条赋予它,并用Create( )方法设置参数和样式。
BOOL Create( DWORD dwStyle,const RECT&rect, CWnd* pParentWnd,UINT nID );
第21页:滚动条成员函数
6.3滚动条控件---成员函数
void SetScrollRange( int nMinPos, int nMaxPos,BOOL bRedraw = TRUE );//查询滚动范围int SetScrollPos( int nPos,BOOL bRedraw = TRUE );//查询滑动块位置
第22页:创建滚动条示例
6.3滚动条控件程序举例:CScrollBar *pMyScroll = new CScrollBar( );
CRect rt(10,10,120,30); pMyScroll->Create(WS_CHILD|WS_VISIBLE|SBS_VERT, rt, this,IDS_DEMO);
第23页:设置滚动范围示例
6.3滚动条控件程序举例:pMyScroll-> SetScrollRange(SB_VERT,-100,100);
第24页:滚动条编程演示
6.3滚动条控件---滚动条编程演示滚动条控件的使用方法,拖动滑块时调整RGB宏的参数值,改变曲线的颜色。
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
第25页:滚动条操作函数
6.3滚动条控件---应用举例---滚动条操作void CDemoDlg::OnHScroll(UINT nSBCode,UINT nPos, CScrollBar* pScrollBar)说明:UINT nSBCode---滚动条动作标识SB_THUMBTRACKSB_LINELEFT SB_LINERIGHTSB_PAGELEFT SB_PAGERIGHTSB_LINEDOWN SB_LINEUPSB_PAGEDOWN SB_PAGEUP
第26页:6.4 列表框控件
6.4列表框控件列表框常应用于从众多数据中选某一项。 列表框经常用在对话框里,列表框有一个预定义的键盘接口,用户可以用键盘上的箭头和PageUp或PageDown键在列表框中进行数据的选择,或通过适当的样式设置,允许与Shift或Ctrl键组合使用。
第27页:CListBox类
6.4列表框控件---CListBox类
本页源文件仅提取到标题或少量文字,详细内容请对照本页图示。
第28页:创建列表框
6.4列表框控件---成员函数
BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);
第29页:列表框成员函数(一)
6.4列表框控件---成员函数
int AddString( LPCTSTR lpszItem ); int DeleteString( UINT nIndex ); int InsertString( int nIndex, LPCTSTR lpszItem ); void ResetContent( ); int SelectString(int nStartAfter, LPCTSTR lpszItem );
第30页:列表框成员函数(二)
6.4列表框控件---成员函数
void GetText( int nIndex, CString&rString ) const; int GetSel( int nIndex ) const; int GetCurSel( ) const; int SetCurSel( int nSelect );
第31页:Dir函数attr取值
Dir函数attr取值
列表框Dir函数属性attr取值对照表 Value ID 0x0010 DDL_DIRECTORY 0x0000 DDL_READWRITE 0x0020 DDL_ARCHIVE 0x0001 DDL_READONLY 0x4000 DDL_DRIVES 0x0002 DDL_HIDDEN 0x8000 DDL_EXCLUSIVE 0x0004 DDL_SYSTEM
6.4列表框控件---成员函数int Dir( UINT attr, LPCTSTR lpszWildCard );attr:可以是下列值的任意组合ValueIDValueID0x0010DDL_DIRECTORY0x0000DDL_READWRITE0x0020DDL_ARCHIVE0x0001DDL_READONLY0x4000DDL_DRIVES0x0002DDL_HIDDEN0x8000DDL_EXCLUSIVE0x0004DDL_SYSTEMlpszWildCard: Points to a file-specification string.
第32页:6.5 编辑框控件
6.5编辑框控件---CEdit类编辑框控件看起来是个非常简单的矩形窗口,但它具有许多功能,编辑框控件可以自带滚动条,显示多行文本。
第33页:创建编辑框
6.5编辑框控件---成员函数
BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);
第34页:编辑框成员函数(一)
6.5编辑框控件---成员函数
void SetSel( int nStartChar, int nEndChar,BOOL bNoScroll = FALSE ); void GetSel( int&nStartChar,int&nEndChar ) const; void ReplaceSel( LPCTSTR lpszNewText,BOOL bCanUndo = FALSE );
第35页:编辑框成员函数(二)
6.5编辑框控件---成员函数
BOOL SetReadOnly( BOOL bReadOnly = TRUE ); void Copy( ); void Cut( ); void Paste( ); BOOL Undo( ); void Clear( );
第36页:6.6 组合框控件
6.6组合框控件组合框是两种预定义窗口的组合形式。 在Windows编程中使用单一控件往往不能完全满足与用户交互的需要,最常见的组合框例子是列表框及与其相联系的静态文本和编辑框。
第37页:创建组合框
6.6组合框控件---成员函数
BOOL Create(DWORD dwStyle,const RECT&rect,CWnd* pParentWnd,UINT nID);
第38页:组合框成员函数(一)
6.6组合框控件---成员函数
int AddString( LPCTSTR lpszString ); int DeleteString( UINT nIndex ); int InsertString( int nIndex, LPCTSTR lpszString ); void ResetContent( ); int SelectString(int nStartAfter,LPCTSTR lpszString); int Dir( UINT attr, LPCTSTR lpszWildCard );
第39页:组合框成员函数(二)
6.6组合框控件---成员函数
int SetCurSel( int nSelect ); int GetCurSel( ) const; BOOL SetEditSel( int nStartChar,int nEndChar );
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}