Visual C 教学课件:第6章 基于对话框的应用程序
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
|SBS_VERT, rt, this,IDS_DEMO);
第6章基于对话框的应用程序
6.3 滚动条控件 程序举例:
pMyScroll->SetScrollRange(SB_VERT, -100,100); // 设置滚动范围
// 设置滑动块位置 pMyScroller->SetScrollPos(0);
void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE );
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数
BOOL SetReadOnly( BOOL bReadOnly = TRUE ); void Copy( ); void Cut( ); void Paste( ); BOOL Undo( ); void Clear( );
DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
第6章基于对话框的应用程序
6.4 列表框控件---成员函数
int AddString( LPCTSTR lpszItem ); int DeleteString( UINT nIndex ); int InsertString( int nIndex, LPCTSTR lpszItem ); void ResetContent( ); int SelectString(int nStartAfter, LPCTSTR lpszItem );
第6章基于对话框的应用程序
教学重点 1、对话框基本概念
对话框设计、对话框初始化、数据交换机制 2、标准控件编程
按钮、滚动条、列表框、编辑框、组合框等 3、定时器消息编程
WM_TIMER
第6章基于对话框的应用程序
6.1 概述 基于对话框的应用程序用CDialog派生类对
象作为应用程序的主窗口。基于对话框的应 用程序框架可由Visual C++的应用向导自动 生成,非常方便。 对话框(Dialog)实际上也是一个窗口。在 MFC中,对话框的功能被封装在CDialog类 中,CDialog类是CWnd类的派生类 。
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 void GetText( int nIndex, CString& rString ) const; int GetSel( int nIndex ) const; int GetCurSel( ) const; int SetCurSel( int nSelect );
说明:UINT nSBCode---滚动条动作标识 SB_THUMBTRACK SB_LINELEFT SB_LINERIGHT SB_PAGELEFT SB_PAGERIGHT SB_LINEDOWN SB_LINEUP SB_PAGEDOWN SB_PAGEUP
第6章基于对话框的应用程序
6.4 列表框控件 列表框常应用于从众多数据中选某一项。 列表框经常用在对话框里,列表框有一个预
第6章基于对话框的应用程序
6.3 滚动条控件---创建与初始化 创建CScrollBar对象的一般步骤: (1) 用C++关键字new和构造函数CScrollBar()为
一个ScrollBar类分配一个实例。 (2) 初始化CScrollBar对象,将一个Windows滚
动条赋予它,并用Create( )方法设置参数和 样式。 BOOL Create( DWORD dwStyle,
第6章基于对话框的应用程序
6.2 按钮控件---创建按钮控件 程序举例: CButton *pButton = new CButton(); CRect rt(10,10,70,30); pButton->Create(“确定”,
WS_CHILD|WS_VISIBLE |BS_PUSHBUTTON, rt, this, IDB_DEMO );
BOOL Create (
LPCTSTR lpszCaption, // 指定按钮显示的正文
DWORD dwStyle,
// 按钮的风格
const RECT& rect,
// 按钮的位置和大小
CWnd* pParentWnd, // 父窗口指针
UINT nID
// 按钮的ID
);
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 int Dir( UINT attr, LPCTSTR lpszWildCard ); attr: 可以是下列值的任意组合
ID DDL_READWRITE DDL_READONLY DDL_HIDDEN DDL_SYSTEM
Value 0x0000 0x0001 0x0002 0x0004
定义的键盘接口,用户可以用键盘上的箭头 和PageUp或PageDown键在列表框中进行数 据的选择,或通过适当的样式设置,允许与 Shift或Ctrl键组合使用。
第6章基于对话框的应用程序 6.4 列表框控件---CListBox类
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 BOOL Create(
第6章基于对话框的应用程序
6.1 概述
对话框的数据交换机制(DDX)---数据交换函数 void DDX_Text ( CDataExchange* pDX,
int nIDC, float& value ); 其中: 参数pDX:指向CDataExchange对象的指针; 参数nIDC:对话框对象中的编辑控件的标识符; 参数value:对话框中的数据成员的引用。
ID DDL_DIRECTORY DDL_ARCHIVE DDL_DRIVES DDL_EXCLUSIVE
Value 0x0010 0x0020 0x4000 0x8000
lpszWildCard: Points to a file-specification string.
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.6 组合框控件 组合框是两种预定义窗口的组合形式。
在Windows编程中使用单一控件往往 不能完全满足与用户交互的需要,最 常见的组合框例子是列表框及与其相 联系的静态文本和编辑框。
const RECT& rect, CWnd* pParentWnd, UINT nID );
第6章基于对话框的应用程序
6.3 滚动条控件---成员函数 void SetScrollRange( int nMinPos, int nMaxPos,
BOOL bRedraw = TRUE ); // 设置滚动范围 void GetScrollRange( LPINT lpMinPos,
第6章基于对话框的应用程序
6.2 按钮控件---按钮控件编程 演示按钮控件的使用方法,重点说明单选按
钮的使用方法。
第6章基于对话框的应用程序
6.2 按钮控件---单选按钮
同一组中的单选按钮的ID值必须连续; 同一组中的单选按钮关联同一个整型变量; 每组的第一个单选按钮设置Group属性。
LPINT lpMaxPos) const; // 查询滚动范围
int SetScrollPos( int nPos, BOOL bRedraw = TRUE ); // 设置滑动块位置
int GetScrollPos() const; // 查询滑动块位置
第6章基于对话框的应用程序
6.3 滚动条控件 程序举例: CScrollBar *pMyScroll = new CScrollBar( ); CRect rt(10,10,120,30); pMyScroll->Create(WS_CHILD|WS_VISIBLE
6.5 编辑框控件---CEdit类 编辑框控件看起来是个非常简单的矩形窗口,
但它具有许多功能,编辑框控件可以自带滚 动条,显示多行文本。
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数 BOOL Create(
DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
6.2 按钮控件---创建按钮控件 1、按钮控件消息映射宏 ON_BN_CLICKED、ON_BN_DOUBLECLICKED 2、常见的按钮控件 复选框:常用于只有两种完全相反状态的情况下; 单选按钮:适用于同一组属性相同的数据中选一个数据; 下压式按钮:适用于消息的发送; 分组框:没有太多的操作,只是在窗口中划分区域范围。
第6章基于对话框的应用程序
6.3 滚动条控件
滚动条是一个交互式的、高度可视化的控件, 它包括一个滑块、滚动条的两端的按钮等。
滚动条控件与属于窗口的滚动条是不一样的。 滚动条控件是由用户创建、管理和释放的, 属于窗口的滚动条是由该窗口创建、管理和 释放的。
第6章基于对话框的应用程序 6.3 滚动条控件---CScrollBar类
6.1 概述---演示程序 【例6-1】设计数据采集模拟应用程序,设
计要求如下: 1、使用定时器模拟产生实时数据; 2、显示曲线,可以定制曲线颜色、线型;
第6章基于对话框的应用程序 6.2 按钮控件
第6章基于对话框的应用程序
6.2 按钮控件---创建按钮控件
CButton类的成员函数Create负责创建按钮控件, 该函数的原型为:
6.1 概述 对话框的数据交换机制(DDX) 数据交换机制通过CDialog::DoDataExchange
()函数来完成,其原型为: virtual void DoDataExchange (
CDataExchange* pDX ); 其中参数pDX为指向CDataExchange类对象的
指针,框架使用该对象建立数据交换内容。
第6章基于对话框的应用程序。
Windows提供了一批基本控件,如编 辑控件(Edit Box)、组合框控件等, 可解决大部分用户输入界面设计的需 求。
第6章基于对话框的应用程序
6.1 概述---演示程序 【例6-1】设计数据采集模拟应用程序。
第6章基于对话框的应用程序
对应的数据成员; 4、在消息响应函数中添加对话框对象的应用代
码。
第6章基于对话框的应用程序
6.1 概述 对话框的初始化 1、构造函数:针对对话框的数据成员进行
初始化。 2、OnInitDialog:WM_INITDIALOG消
息处理函数。在OnInitDialog()函数 中做一些影响对话框外观的初始化工 作。
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数
void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );
void GetSel( int& nStartChar, int& nEndChar ) const;
第6章基于对话框的应用程序
6.1 概述 对话框的数据交换机制(DDX) 控件与用户的数据交流过程: 1、在对话框类中加入与控件对应的数据成员; 2、通过数据交换(DDX)确定其与控件的数据
交换关系。 MFC提供了CDataExchange类来实现对话框
类与控件之间的数据交换(DDX)。
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.1 概述 从MFC编程的角度来看,一个对话框
由两部分组成: 1、对话框模板资源:对话框模板用于指
定对话框的形状、所用控件及其分布。 2、对话框类:对话框类用来实现对话框
的功能。
第6章基于对话框的应用程序
6.1 概述 对话框设计:对话框模板设计和对话框类设计 1、向项目中添加对话框模板资源; 2、编辑对话框模板资源,加入所需的控件; 3、从CDialog类派生对话框类,加入与各控件
第6章基于对话框的应用程序
6.3 滚动条控件---滚动条编程 演示滚动条控件的使用方法,拖动滑块时调
整RGB宏的参数值,改变曲线的颜色。
第6章基于对话框的应用程序
6.3 滚动条控件---应用举例---滚动条操作 void CDemoDlg::OnHScroll(UINT nSBCode,
UINT nPos, CScrollBar* pScrollBar)
第6章基于对话框的应用程序
6.3 滚动条控件 程序举例:
pMyScroll->SetScrollRange(SB_VERT, -100,100); // 设置滚动范围
// 设置滑动块位置 pMyScroller->SetScrollPos(0);
void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE );
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数
BOOL SetReadOnly( BOOL bReadOnly = TRUE ); void Copy( ); void Cut( ); void Paste( ); BOOL Undo( ); void Clear( );
DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
第6章基于对话框的应用程序
6.4 列表框控件---成员函数
int AddString( LPCTSTR lpszItem ); int DeleteString( UINT nIndex ); int InsertString( int nIndex, LPCTSTR lpszItem ); void ResetContent( ); int SelectString(int nStartAfter, LPCTSTR lpszItem );
第6章基于对话框的应用程序
教学重点 1、对话框基本概念
对话框设计、对话框初始化、数据交换机制 2、标准控件编程
按钮、滚动条、列表框、编辑框、组合框等 3、定时器消息编程
WM_TIMER
第6章基于对话框的应用程序
6.1 概述 基于对话框的应用程序用CDialog派生类对
象作为应用程序的主窗口。基于对话框的应 用程序框架可由Visual C++的应用向导自动 生成,非常方便。 对话框(Dialog)实际上也是一个窗口。在 MFC中,对话框的功能被封装在CDialog类 中,CDialog类是CWnd类的派生类 。
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 void GetText( int nIndex, CString& rString ) const; int GetSel( int nIndex ) const; int GetCurSel( ) const; int SetCurSel( int nSelect );
说明:UINT nSBCode---滚动条动作标识 SB_THUMBTRACK SB_LINELEFT SB_LINERIGHT SB_PAGELEFT SB_PAGERIGHT SB_LINEDOWN SB_LINEUP SB_PAGEDOWN SB_PAGEUP
第6章基于对话框的应用程序
6.4 列表框控件 列表框常应用于从众多数据中选某一项。 列表框经常用在对话框里,列表框有一个预
第6章基于对话框的应用程序
6.3 滚动条控件---创建与初始化 创建CScrollBar对象的一般步骤: (1) 用C++关键字new和构造函数CScrollBar()为
一个ScrollBar类分配一个实例。 (2) 初始化CScrollBar对象,将一个Windows滚
动条赋予它,并用Create( )方法设置参数和 样式。 BOOL Create( DWORD dwStyle,
第6章基于对话框的应用程序
6.2 按钮控件---创建按钮控件 程序举例: CButton *pButton = new CButton(); CRect rt(10,10,70,30); pButton->Create(“确定”,
WS_CHILD|WS_VISIBLE |BS_PUSHBUTTON, rt, this, IDB_DEMO );
BOOL Create (
LPCTSTR lpszCaption, // 指定按钮显示的正文
DWORD dwStyle,
// 按钮的风格
const RECT& rect,
// 按钮的位置和大小
CWnd* pParentWnd, // 父窗口指针
UINT nID
// 按钮的ID
);
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 int Dir( UINT attr, LPCTSTR lpszWildCard ); attr: 可以是下列值的任意组合
ID DDL_READWRITE DDL_READONLY DDL_HIDDEN DDL_SYSTEM
Value 0x0000 0x0001 0x0002 0x0004
定义的键盘接口,用户可以用键盘上的箭头 和PageUp或PageDown键在列表框中进行数 据的选择,或通过适当的样式设置,允许与 Shift或Ctrl键组合使用。
第6章基于对话框的应用程序 6.4 列表框控件---CListBox类
第6章基于对话框的应用程序
6.4 列表框控件---成员函数 BOOL Create(
第6章基于对话框的应用程序
6.1 概述
对话框的数据交换机制(DDX)---数据交换函数 void DDX_Text ( CDataExchange* pDX,
int nIDC, float& value ); 其中: 参数pDX:指向CDataExchange对象的指针; 参数nIDC:对话框对象中的编辑控件的标识符; 参数value:对话框中的数据成员的引用。
ID DDL_DIRECTORY DDL_ARCHIVE DDL_DRIVES DDL_EXCLUSIVE
Value 0x0010 0x0020 0x4000 0x8000
lpszWildCard: Points to a file-specification string.
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.6 组合框控件 组合框是两种预定义窗口的组合形式。
在Windows编程中使用单一控件往往 不能完全满足与用户交互的需要,最 常见的组合框例子是列表框及与其相 联系的静态文本和编辑框。
const RECT& rect, CWnd* pParentWnd, UINT nID );
第6章基于对话框的应用程序
6.3 滚动条控件---成员函数 void SetScrollRange( int nMinPos, int nMaxPos,
BOOL bRedraw = TRUE ); // 设置滚动范围 void GetScrollRange( LPINT lpMinPos,
第6章基于对话框的应用程序
6.2 按钮控件---按钮控件编程 演示按钮控件的使用方法,重点说明单选按
钮的使用方法。
第6章基于对话框的应用程序
6.2 按钮控件---单选按钮
同一组中的单选按钮的ID值必须连续; 同一组中的单选按钮关联同一个整型变量; 每组的第一个单选按钮设置Group属性。
LPINT lpMaxPos) const; // 查询滚动范围
int SetScrollPos( int nPos, BOOL bRedraw = TRUE ); // 设置滑动块位置
int GetScrollPos() const; // 查询滑动块位置
第6章基于对话框的应用程序
6.3 滚动条控件 程序举例: CScrollBar *pMyScroll = new CScrollBar( ); CRect rt(10,10,120,30); pMyScroll->Create(WS_CHILD|WS_VISIBLE
6.5 编辑框控件---CEdit类 编辑框控件看起来是个非常简单的矩形窗口,
但它具有许多功能,编辑框控件可以自带滚 动条,显示多行文本。
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数 BOOL Create(
DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
6.2 按钮控件---创建按钮控件 1、按钮控件消息映射宏 ON_BN_CLICKED、ON_BN_DOUBLECLICKED 2、常见的按钮控件 复选框:常用于只有两种完全相反状态的情况下; 单选按钮:适用于同一组属性相同的数据中选一个数据; 下压式按钮:适用于消息的发送; 分组框:没有太多的操作,只是在窗口中划分区域范围。
第6章基于对话框的应用程序
6.3 滚动条控件
滚动条是一个交互式的、高度可视化的控件, 它包括一个滑块、滚动条的两端的按钮等。
滚动条控件与属于窗口的滚动条是不一样的。 滚动条控件是由用户创建、管理和释放的, 属于窗口的滚动条是由该窗口创建、管理和 释放的。
第6章基于对话框的应用程序 6.3 滚动条控件---CScrollBar类
6.1 概述---演示程序 【例6-1】设计数据采集模拟应用程序,设
计要求如下: 1、使用定时器模拟产生实时数据; 2、显示曲线,可以定制曲线颜色、线型;
第6章基于对话框的应用程序 6.2 按钮控件
第6章基于对话框的应用程序
6.2 按钮控件---创建按钮控件
CButton类的成员函数Create负责创建按钮控件, 该函数的原型为:
6.1 概述 对话框的数据交换机制(DDX) 数据交换机制通过CDialog::DoDataExchange
()函数来完成,其原型为: virtual void DoDataExchange (
CDataExchange* pDX ); 其中参数pDX为指向CDataExchange类对象的
指针,框架使用该对象建立数据交换内容。
第6章基于对话框的应用程序。
Windows提供了一批基本控件,如编 辑控件(Edit Box)、组合框控件等, 可解决大部分用户输入界面设计的需 求。
第6章基于对话框的应用程序
6.1 概述---演示程序 【例6-1】设计数据采集模拟应用程序。
第6章基于对话框的应用程序
对应的数据成员; 4、在消息响应函数中添加对话框对象的应用代
码。
第6章基于对话框的应用程序
6.1 概述 对话框的初始化 1、构造函数:针对对话框的数据成员进行
初始化。 2、OnInitDialog:WM_INITDIALOG消
息处理函数。在OnInitDialog()函数 中做一些影响对话框外观的初始化工 作。
第6章基于对话框的应用程序
6.5 编辑框控件---成员函数
void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );
void GetSel( int& nStartChar, int& nEndChar ) const;
第6章基于对话框的应用程序
6.1 概述 对话框的数据交换机制(DDX) 控件与用户的数据交流过程: 1、在对话框类中加入与控件对应的数据成员; 2、通过数据交换(DDX)确定其与控件的数据
交换关系。 MFC提供了CDataExchange类来实现对话框
类与控件之间的数据交换(DDX)。
第6章基于对话框的应用程序
第6章基于对话框的应用程序
6.1 概述 从MFC编程的角度来看,一个对话框
由两部分组成: 1、对话框模板资源:对话框模板用于指
定对话框的形状、所用控件及其分布。 2、对话框类:对话框类用来实现对话框
的功能。
第6章基于对话框的应用程序
6.1 概述 对话框设计:对话框模板设计和对话框类设计 1、向项目中添加对话框模板资源; 2、编辑对话框模板资源,加入所需的控件; 3、从CDialog类派生对话框类,加入与各控件
第6章基于对话框的应用程序
6.3 滚动条控件---滚动条编程 演示滚动条控件的使用方法,拖动滑块时调
整RGB宏的参数值,改变曲线的颜色。
第6章基于对话框的应用程序
6.3 滚动条控件---应用举例---滚动条操作 void CDemoDlg::OnHScroll(UINT nSBCode,
UINT nPos, CScrollBar* pScrollBar)