《基本控件使用》PPT课件.ppt
《《基本控件使用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《基本控件使用》PPT课件.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章章 基本控件使用(二)第第1010章章 基本控件使用基本控件使用(二二)第第1010章章 基本控件使用(二)第第1010章章 基本控件使用基本控件使用(二二)10.1 按钮类按钮类10.2 列表框类列表框类10.3 应用实例应用实例第第1010章章 基本控件使用(二)10.1 按钮类按钮类按钮是一个矩形窗口,通常包含一个标题用来说明按钮的按钮是一个矩形窗口,通常包含一个标题用来说明按钮的作用。作用。CButton(按钮控件按钮控件)类是从类是从CWnd类继承下来的。类继承下来的。第第1010章章 基本控件使用(二)10.1.1 按钮类的结构按钮类的结构VC+在在Afxwin.h中
2、定义了中定义了CButton类的结构,结构代码:类的结构,结构代码:class CButton:public CWndDECLARE_DYNAMIC(CButton)public:CButton();/ConstructorsBOOL Create(LPCTSTR lpszCaption,DWORD dwStyle,const RECT&rect,CWnd*pParentWnd,UINT nID);/AttributesUINT GetState()const;void SetState(BOOL bHighlight);int GetCheck()const;void SetCheck(in
3、t nCheck);UINT GetButtonStyle()const;void SetButtonStyle(UINT nStyle,BOOL bRedraw=TRUE);第第1010章章 基本控件使用(二)#if(WINVER=0 x400)HICON SetIcon(HICON hIcon);HICON GetIcon()const;HBITMAP SetBitmap(HBITMAP hBitmap);HBITMAP GetBitmap()const;HCURSOR SetCursor(HCURSOR hCursor);HCURSOR GetCursor();#endif/Overri
4、dables(for owner draw only)virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);/Implementationpublic:virtual CButton();protected:virtual BOOL OnChildNotify(UINT,WPARAM,LPARAM,LRESULT*);第第1010章章 基本控件使用(二)CButton类中按钮特有的样式类中按钮特有的样式第第1010章章 基本控件使用(二)10.1.2 按钮类的方法按钮类的方法按钮类按钮类(CButton类类)提供了如下的访问方法。提供
5、了如下的访问方法。第第1010章章 基本控件使用(二)10.2 列表框类列表框类CListBox类在类在MFC类层次结构中的位置。类层次结构中的位置。第第1010章章 基本控件使用(二)10.2.1 列表框类的结构列表框类的结构结构见教材结构见教材P241,列表框控件可用的样式:列表框控件可用的样式:第第1010章章 基本控件使用(二)列表框类的结构列表框类的结构表表10-4显示了消息映像项,它用于处理列表框通知。显示了消息映像项,它用于处理列表框通知。第第1010章章 基本控件使用(二)10.2.2 列表框类的方法列表框类的方法1通用通用 方法方法第第1010章章 基本控件使用(二)2单选列
6、表框的方法单选列表框的方法列表框的默认模式是单选项模式;所有的通用方法均适用于单列表框的默认模式是单选项模式;所有的通用方法均适用于单选项列表框。选项列表框。只有两个类方只有两个类方法专门处理单法专门处理单选项列表框选项列表框GetCurSel()SetCurSel()获得当前选择列表获得当前选择列表框项的下标框项的下标(基于基于0)选择列表框字符串选择列表框字符串第第1010章章 基本控件使用(二)3多选列表框的方法多选列表框的方法 方法方法 说明说明 GetAnchorIndex()获得多项选择列表框中当前定位项的下标获得多项选择列表框中当前定位项的下标GetCaretIndex()获得多
7、项选择列表框中具有光标矩形的项的下标获得多项选择列表框中具有光标矩形的项的下标GetSelCount()获得多项选择列表框中当前所选的项的数目获得多项选择列表框中当前所选的项的数目GetSelItems()将所有当前被选列表框项下标放入一整型数组缓冲区将所有当前被选列表框项下标放入一整型数组缓冲区SelItemRange()切换多选择列表框项范围的选择状态切换多选择列表框项范围的选择状态SetAnchorIndex()在多项选择列表框中扩充选择设置开始在多项选择列表框中扩充选择设置开始(定位定位)项项SetCaretIndex()在多项选择列表框中指定下标项设置光标矩形在多项选择列表框中指定下
8、标项设置光标矩形SetSel()在多项选择列表框中切换项目的选择状态在多项选择列表框中切换项目的选择状态多选项列表框扩展了多选项列表框扩展了标准单项选择列表框标准单项选择列表框的能力,可以解决在的能力,可以解决在一个列表框中选择多一个列表框中选择多项带来的复杂性项带来的复杂性第第1010章章 基本控件使用(二)4特定字符串方法特定字符串方法 方法方法 说明说明 AddString()在列表框中加入一个字符串在列表框中加入一个字符串DeleteString()从列表框中删除一个字符串从列表框中删除一个字符串Dir()从当前目录加文件名放入列表框从当前目录加文件名放入列表框FindString()
9、在列表框中搜索一字符串在列表框中搜索一字符串FindStringExact()在列表框中搜索第一个与指定搜索字符串匹配的字符串在列表框中搜索第一个与指定搜索字符串匹配的字符串InsertString()在列表框指定下标处插入一字符串在列表框指定下标处插入一字符串ResetContent()清除列表框中的所有项清除列表框中的所有项SelectString()在单选列表框中搜索并选择一字符串在单选列表框中搜索并选择一字符串适用于单选择和多选择两种模式的列表框,这些方法处理列适用于单选择和多选择两种模式的列表框,这些方法处理列表框中的字符串项。表框中的字符串项。第第1010章章 基本控件使用(二)5
10、虚拟方法虚拟方法CListBox类还声明了几个虚拟方法,编程时可从类还声明了几个虚拟方法,编程时可从CListBox类中派类中派生一些类替换到应用程序的类中。生一些类替换到应用程序的类中。方法方法 说明说明 CharToItem()可替换此方法为自绘列表框(没有字符串)处理可替换此方法为自绘列表框(没有字符串)处理WM_CHARCompareItem()由由MFC调用以得到排序的自绘列表框中的新项的位置调用以得到排序的自绘列表框中的新项的位置DeleteItem()当用户从自绘列表框中删除一项时当用户从自绘列表框中删除一项时MFC调用此方法调用此方法DrawItem()当确定自绘列表框项必须重
11、绘时当确定自绘列表框项必须重绘时MFC调用此方法调用此方法MeasureItem()当一自绘列表框被创建时当一自绘列表框被创建时MFC调用此方法来决定列表框的维数调用此方法来决定列表框的维数VKeyToItem()可替换此方法,处理具有可替换此方法,处理具有LBS_WANTKEYBOARDINPUT样样 式的列表框的式的列表框的WM_KEYDOWN消息消息第第1010章章 基本控件使用(二)10.3 按钮类与列表框类的应用实例按钮类与列表框类的应用实例例例10-1 编写应用程序编写应用程序。第第1010章章 基本控件使用(二)1应用程序的界面设计应用程序的界面设计第第1010章章 基本控件使用
12、(二)1应用程序的界面设计应用程序的界面设计第第1010章章 基本控件使用(二)对于成组的单选按钮,只对于成组的单选按钮,只在每组的第一个按钮的属在每组的第一个按钮的属性中选中性中选中Group设置设置在在Sex Selecting组组中只有中只有Boy单选按单选按钮选中钮选中Group属性属性在在Age Range组中只组中只有有“20”单选按钮单选按钮选中选中Group属性属性设计过程中,同一组单选按钮设计过程中,同一组单选按钮必须一个接一个地放进对话框必须一个接一个地放进对话框中,中间不能插入其它的控件中,中间不能插入其它的控件第第1010章章 基本控件使用(二)顺序放置的原因:顺序放置
13、的原因:Visual C按照放入对话框中的先后顺序,按照放入对话框中的先后顺序,给每个控件赋一个给每个控件赋一个ID值,所以控件的值,所以控件的ID值是连续的。值是连续的。Group属性的控件之间的控件为一组。属性的控件之间的控件为一组。从从resource.h的资源头文件中可得到的资源头文件中可得到ID值值#define IDC_SHOW_BUTTON 1006#define IDC_HIDE_BUTTON 1007#define IDC_Boy_RADIO 1008#define IDC_Girl_RADIO 1009#define IDC_Age1_RADIO 1010#define I
14、DC_Age2_RADIO 1011#define IDC_Age3_RADIO 1012#define IDC_Show_Sex_Age_BUTTON 1013#define IDC_Result_EDIT 1014第第1010章章 基本控件使用(二)2应用程序的代码编程部分应用程序的代码编程部分1)给各个控件连接变量给各个控件连接变量(什么情况下需要连接变量?)(什么情况下需要连接变量?)第第1010章章 基本控件使用(二)2)与有关按钮、编辑框等控件的连接方法与有关按钮、编辑框等控件的连接方法(什么情况下什么情况下需要定义方法?)需要定义方法?)3)方法的实现方法的实现(3.1)给复选框
15、给复选框IDC_DATE_CHECK添加代码添加代码void CSELECTBOXDlg:OnDataCheck()UpdateData(TRUE);/以当前的屏幕显示内容更新控件的变量以当前的屏幕显示内容更新控件的变量 if(m_DateCheck=TRUE)/若选中若选中Date则在编辑框中显示日期则在编辑框中显示日期 CTime tNow;/创建创建CTime的对象的对象tNow=CTime:GetCurrentTime();/获取当前系统日期获取当前系统日期CString sNow=tNow.Format(%y.%m.%d);/%y.%B.%d /格式化,并将时间值转换为字符串类型格式
16、化,并将时间值转换为字符串类型m_DateEdit.SetSel(0,-1);/选择编辑框中的全部内容选择编辑框中的全部内容m_DateEdit.ReplaceSel(sNow);/将编辑框替换为系统日期将编辑框替换为系统日期 else m_DateEdit.SetSel(0,-1);m_DateEdit.ReplaceSel();/编辑框显示为空编辑框显示为空 UpdateData(FALSE);/将控件的值更新屏幕将控件的值更新屏幕 void CSELECTBOXDlg:OnTimeCheck()UpdateData(TRUE);/以当前的屏幕显示内容更新控件的变量以当前的屏幕显示内容更新
17、控件的变量 if(m_TimeCheck=TRUE)/若选中若选中Time则在编辑框中显示时间则在编辑框中显示时间 CTime tNow;/创建创建CTime的对象的对象tNow=CTime:GetCurrentTime();/获取当前系统时间获取当前系统时间CString sNow=tNow.Format(“%I:%M:%S”);/24小时:小时:%H:%M:%Sm_TimeEdit.SetSel(0,-1);m_TimeEdit.ReplaceSel(sNow);/将编辑框替换为系统时间将编辑框替换为系统时间 elsem_TimeEdit.SetSel(0,-1);m_TimeEdit.R
18、eplaceSel();UpdateData(FALSE);函数函数Format的参数的参数%I是时是时间的小时表示法(间的小时表示法(0112),),%m是分的表示法是分的表示法(0059),),%d是秒的表是秒的表示法(示法(0059)(3.2)为复选框为复选框IDC_TIME_CHECK添加代码添加代码void CSELECTBOXDlg:OnEnableButton()GetDlgItem(IDC_DATE_CHECK)-EnableWindow(TRUE);/使使复选框可选,函数返回指向对象的指针函数复选框可选,函数返回指向对象的指针函数 GetDlgItem(IDC_TIME_CH
19、ECK)-EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);/使编辑框可用使编辑框可用 /也可表示成:也可表示成:GetDlgItem(IDC_DATE_EDIT)-EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);/也可也可表示成:表示成:GetDlgItem(IDC_TIME_EDIT)-EnableWindow(TRUE);CWnd类的成员函数类的成员函数return:A pointer to the given control or child window.关联变量为关联变量为BOOL型型
20、关联变量为关联变量为CEdit型型(3.3)给给Enable按钮添加代码按钮添加代码第第1010章章 基本控件使用(二)void CSELECTBOXDlg:OnDisableButton()/使复选框不可选使复选框不可选GetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE);/使编辑框不可用使编辑框不可用m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);(3.4)为为Disable按钮连接
21、代码按钮连接代码第第1010章章 基本控件使用(二)void CSELECTBOXDlg:OnShowButton()/使编辑框可见使编辑框可见GetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_SHOW);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_SHOW);GetDlgItem(IDC_DATE_EDIT)-EnableWindow(SW_SHOW);/表示为:表示为:m_DateEdit.ShowWindow(SW_SHOW);GetDlgItem(IDC_TIME_EDIT)-EnableWindow(SW_
22、SHOW);/表示为:表示为:m_TimeEdit.ShowWindow(SW_SHOW);基类基类CWnd的成员函数的成员函数(3.5)为为Show Again按钮添加代码按钮添加代码第第1010章章 基本控件使用(二)void CSELECTBOXDlg:OnHideButton()/使编辑框不可见使编辑框不可见GetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_HIDE);m_DateEdit.ShowWindow(SW_HIDE);/表示为:表示为:m_D
23、ateEdit.ShowWindow(SW_SHOW);m_TimeEdit.ShowWindow(SW_HIDE);/表示为:表示为:m_TimeEdit.ShowWindow(SW_SHOW);基类基类CWnd的成员函数的成员函数(3.6)为为Hide the Clock Setting按钮添加实现代码按钮添加实现代码第第1010章章 基本控件使用(二)void CSELECTBOXDlg:OnShowSexAgeBUTTON()char sEdit50;/声明字符串变量,用来存放显示在编辑框中的字符声明字符串变量,用来存放显示在编辑框中的字符 int iSexRADIO;int iAge
24、RADIO;/表示选中按钮的状态表示选中按钮的状态 /单选按钮组的状态,返回被选按钮的单选按钮组的状态,返回被选按钮的IDiSexRADIO=GetCheckedRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO);if(iSexRADIO=IDC_Boy_RADIO)strcpy(sEdit,The boys age is);if(iSexRADIO=IDC_Girl_RADIO)strcpy(sEdit,The girls age is);/复制字符串到变量中复制字符串到变量中iAgeRADIO=GetCheckedRadioButton(IDC_Age1_R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本控件使用 基本 控件 使用 PPT 课件
限制150内