按钮控件与列表框控件学习教案_第1页
按钮控件与列表框控件学习教案_第2页
按钮控件与列表框控件学习教案_第3页
按钮控件与列表框控件学习教案_第4页
按钮控件与列表框控件学习教案_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1按钮控件与列表框控件按钮控件与列表框控件第一页,共38页。表表 14-1 CButton 类类中中按按钮钮特特有有的的样样式式 样样式式宏宏 说说明明 BS_3STATE 此此样样式式为为复复选选框框,但但是是方方框框可可以以被被选选中中,也也可可以以变变暗暗(表表明明复复选选框框无无效效) BS_AUTO3STATE 此此样样式式为为复复选选框框,但但是是方方框框可可以以被被选选中中,也也可可以以变变暗暗(表表明明复复选选框框无无效效),当当用用户户选选择择方方框框时时,它它的的选选中中状状态态会会自自动动转转换换 B BS S_ _A AU UT TO OC CH HE EC CK

2、 KB BO OX X 此此样样式式为为复复选选框框,当当用用户户选选择择方方框框时时,它它的的选选中中状状态态会会自自动动转转换换 B BS S_ _A AU UT TO OR RI ID DI IO OB BU UT TT TO ON N 此此样样式式为为单单选选按按钮钮,当当用用户户选选中中圆圆圈圈时时,按按钮钮自自动动显显示示自自己己被被选选中中的的状状态态,同同时时使使其其它它具具有有相相同同样样式式的的同同组组的的单单选选按按钮钮处处于于未未被被选选中中的的状状态态 BS_CHECKBOX 创创建建一一个个复复选选框框,默默认认情情况况下下它它的的右右边边有有标标题题,当当与与 B

3、S_LEFTTEXT一一起起使使用用时时,标标题题在在左左边边 B BS S_ _D DE EF FP PU US SH HB BU UT TT TO ON N 创创建建一一个个下下压压式式按按钮钮 BS_GROUPBOX 创创建建一一个个带带标标题题的的分分组组框框 BS_LEFTTEXT 当当和和一一个个单单选选按按钮钮或或复复选选按按钮钮一一起起使使用用时时,使使得得按按钮钮文文字字出出现现在在按按钮钮的的左左边边 BS_OWNERDRAW 创创建建自自定定义义按按钮钮, 当当按按钮钮视视觉觉被被改改变变时时, MFC 自自动动调调用用 DrawItem()方方法法,在在使使用用 CBi

4、tmapButton 类类时时,这这种种样样式式必必须须被被指指定定 BS_PUSHBUTTON 创创建建一一个个下下压压式式按按钮钮,用用户户单单击击此此按按钮钮时时,向向系系统统发发送送 WM_COMMAND消消息息 BS_RADIOBUTTON 创创建建单单选选按按钮钮 第2页/共38页第1页/共38页第二页,共38页。表表 14-2 类类 CButton 的的方方法法 方方法法 说说明明 GetBitmap() 获获得得用用 SetBitmap()设设置置的的位位图图的的句句柄柄 GetButtonStyle() 获获得得有有关关按按钮钮控控件件样样式式的的信信息息 GetCheck(

5、) 获获得得按按钮钮控控件件选选中中的的状状态态 GetCursor() 获获得得通通过过 SetCursor()设设置置的的光光标标图图像像的的句句柄柄 GetIcon() 获获得得由由 SetIcon()设设置置的的图图标标句句柄柄 GetState() 获获得得按按钮钮控控件件的的选选中中、选选择择和和聚聚焦焦状状态态 SetBitmap() 指指定定按按钮钮上上显显示示的的位位图图 SetButtonStyle() 改改变变按按钮钮样样式式 SetCheck() 设设置置按按钮钮控控件件的的选选中中状状态态 SetCursor() 指指定定按按钮钮控控件件上上的的光光标标图图像像 Se

6、tIcon() 指指定定按按钮钮上上显显示示的的图图标标 SetState() 设设置置按按钮钮控控件件的的选选择择状状态态 第3页/共38页第2页/共38页第三页,共38页。MFC调用方法调用方法DrawItem()自动自动(zdng)在一个按钮的用户区在一个按钮的用户区上画上位图,即用户可以自定义按钮。上画上位图,即用户可以自定义按钮。有时必须调整有时必须调整(tiozhng)位图的尺寸大小,可以通过位图的尺寸大小,可以通过SizeToContent()方法进行调整方法进行调整(tiozhng)将对话框按钮将对话框按钮CBitmapButton()对象联系起来对象联系起来CBitmapBu

7、tton类定义的两个初始类定义的两个初始化方法以增强按钮化方法以增强按钮的功能的功能LoadBitmaps()AutoLoad()为为CBitmapButton对对象附上位图,最多可有象附上位图,最多可有4个位图,这些位图从个位图,这些位图从用于程序的资源文件中用于程序的资源文件中读取读取第4页/共38页第3页/共38页第四页,共38页。列表框类的结构列表框类的结构(jigu)和方法和方法MFC中中CListBox类的层次结构类的层次结构 列表框经常用在对话框里,如用列表框选择文件名、目录列表框经常用在对话框里,如用列表框选择文件名、目录等。列表框有一个预定义的键盘接口,用户可以用键盘上的箭头

8、等。列表框有一个预定义的键盘接口,用户可以用键盘上的箭头和和PageUp或或PageDown键在列表框中进行键在列表框中进行(jnxng)数据的选择,数据的选择,或通过适当的样式设置,允许与或通过适当的样式设置,允许与Shift或或Ctrl键组合使用。键组合使用。列表框常应用列表框常应用(yngyng)于从众多数据中选于从众多数据中选某一项某一项第5页/共38页第4页/共38页第五页,共38页。CListBox()控件可用的样式 样式 说明 LBS_DISABLENOSCROLL 当列表框不需要滚动条时,滚动条无效 LBS_EXTENDSEL 允许使用鼠标及特殊键组合进行多项选择 LBS_HA

9、SSTRINGS 指明自绘的列表框,其中包括字符串选项 LBS_MULTICOLUMN 指明一个多列列表框,它含有一个水平滚动条,可以用 SetColumnWidth()方法设置列的宽度 LBS_MULTIPLESEL 用户通过单击或双击一项进行选择或取消选择 LBS_NOINTEGRALHEIGHT 将列表框设置为创建时指定的大小 LBS_NOREDRAW 列表框在变化时不重绘,用户可以在任何时候发送 WM_SETREDRAW 消息改变这种模式 LBS_NOSEL 指明列表框包含只能看不能选择的项 LBS_NOTIFY 当用户单击或双击时向父窗口发送消息 LBS_OWNERDRAWFIXED

10、 指明列表框的所有者负责填写列表项,且列表框具有相同的高度 LBS_OWNERDRAWVARIABLE 指明列表框的所有者负责填写列表项,且列表框可以不同高 LBS_SORT 列表项按字母顺序排列 LBS_STANDARD 此样式是 LBS_NOTIFY、LBS_SORT、WS_VSCROLL和 WS_BORDER 的组合 LBS_USETABSTOPS 告知列表框在加入字符串列表项时加入 tab 字符 LBS_WANTKEYBOARDINPUT 允许应用程序通过发送 WM_VKEYTOITEM 和WM_CHARTOITEM 消息给列表框的所有者来处理键盘输入 第6页/共38页第5页/共38页

11、第六页,共38页。 CListBox 消息的消息映像项消息映像项说明ON_LBN_DBLCLK当用户双击选项时具有LBS_NOTIFY样式的列表框向所有者发送此消息ON_LBN_ERRSPACE列表框不能分配足够内存以满足要求ON_LBN_KILLFOCUS当列表框失去输入焦点时出现此消息ON_LBN_SELCANCEL当取消当前列表框选择时, 具有 LBS_NOTIFY样式的列表框向所有者发送此消息ON_LBN_SELCHANGE当列表框中的选择改变时, 具有 LBS_NOTIFY样式的列表框向它的父窗口 发送此通知。如果选择是用CListBox: :SetCurSel()类方法改变的,则不

12、发送通知。对多项选择列表框来说,当用户按箭头键时,即使选择不变也发送此通知消息映像项使用下面的基本格式:ON_Message(Control ID,ClassMethod)所有者类声明中的方法原型afx_msg void ClassMethod()();发送消息的列表框发送消息的列表框控件的子窗口标识控件的子窗口标识处理消息的父处理消息的父类类方法方法的名字的名字第7页/共38页第6页/共38页第七页,共38页。 通通用用 CListBox 类类方方法法 方方法法 描描述述 GetCount() 获获得得列列表表框框中中列列表表项项数数目目 GetHorizontalExtent() 获获得得

13、列列表表框框的的水水平平滚滚动动宽宽度度(按按像像素素) GetItemData() 获获得得列列表表框框项项有有关关的的 32 位位值值 GetItemDataPtr() 获获得得指指向向列列表表框框项项的的指指针针 GetItemHeight() 获获得得列列表表框框中中项项的的高高度度 (1) 通用通用(tngyng)方法方法 通用方法通用方法(fngf)用来获得和设置列表框数据的值和属性,所有的用来获得和设置列表框数据的值和属性,所有的CListBox列表框都有这些方法列表框都有这些方法(fngf),包括单选列表框、多选列表框和,包括单选列表框、多选列表框和自绘列表框等。自绘列表框等。

14、第8页/共38页第7页/共38页第八页,共38页。(2) 单项选择单项选择(xunz)特定方法特定方法列表框的默认模式是单选项模式;所有的通用列表框的默认模式是单选项模式;所有的通用(tngyng)方法均适用于方法均适用于单选项列表框。单选项列表框。只有只有两个类方两个类方法专门处理单法专门处理单选项列表框选项列表框GetCurSel()GetCurSel()SetCurSel()SetCurSel()获得当前选择列表获得当前选择列表框项的下标框项的下标(基于基于0)选择列表框字符串选择列表框字符串第9页/共38页第8页/共38页第九页,共38页。 方法方法(fngf) 说明说明 GetAnc

15、horIndex()获得多项选择列表框中当前定位项的下标获得多项选择列表框中当前定位项的下标GetCaretIndex() 获得多项选择列表框中具有光标矩形的项的下标获得多项选择列表框中具有光标矩形的项的下标GetSelCount()获得多项选择列表框中当前所选的项的数目获得多项选择列表框中当前所选的项的数目GetSelItems()将所有当前被选列表框项下标放入一整型数组缓冲区将所有当前被选列表框项下标放入一整型数组缓冲区SelItemRange() 切换多选择列表框项范围的选择状态切换多选择列表框项范围的选择状态SetAnchorIndex()在多项选择列表框中扩充选择设置开始在多项选择列

16、表框中扩充选择设置开始(定位定位)项项SetCaretIndex() 在多项选择列表框中指定下标项设置光标矩形在多项选择列表框中指定下标项设置光标矩形SetSel() 在多项选择列表框中切换项目的选择状态在多项选择列表框中切换项目的选择状态(3) 多项选择特定多项选择特定(tdng)方法方法多选项列表框扩展了多选项列表框扩展了标准单项选择列表框标准单项选择列表框的能力,可以的能力,可以(ky)解决在解决在一个列表框中选择多一个列表框中选择多项带来的复杂性项带来的复杂性特定多项选择列表特定多项选择列表框的框的CListBoxCListBox类方法类方法第10页/共38页第9页/共38页第十页,共

17、38页。(4) 字符串指定字符串指定(zhdng)的方法的方法 方法方法 说明说明 AddString() 在列表框中加入一个字符串在列表框中加入一个字符串DeleteString() 从列表框中删除一个字符串从列表框中删除一个字符串Dir() 从当前目录加文件名放入列表框从当前目录加文件名放入列表框FindString() 在列表框中搜索一字符串在列表框中搜索一字符串FindStringExact() 在列表框中搜索第一个与指定搜索字符串匹配的字符串在列表框中搜索第一个与指定搜索字符串匹配的字符串InsertString() 在列表框指定下标在列表框指定下标(xi bio)处插入一字符串处插

18、入一字符串ResetContent() 清除列表框中的所有项清除列表框中的所有项SelectString() 在单选列表框中搜索并选择一字符串在单选列表框中搜索并选择一字符串CListBox指定指定(zhdng)列表列表框中字符串的方法框中字符串的方法第11页/共38页第10页/共38页第十一页,共38页。(5) 虚拟虚拟(xn)方法方法CLstBox类还声明了几个虚拟方法,你可以从类还声明了几个虚拟方法,你可以从CListBox类类中派生中派生(pishng)一些类替换到你的类中。一些类替换到你的类中。 方法方法 说明说明 CharToItem()CharToItem()可以替换此方法来为自

19、绘列表框(没有字符串)处理可以替换此方法来为自绘列表框(没有字符串)处理WM-WM-CHARCHARCompareItem()CompareItem()由由MFCMFC调用以得到排序的自绘列表框中的新项的位置调用以得到排序的自绘列表框中的新项的位置DeleteItem()DeleteItem()当用户从自绘列表框中删除一项时当用户从自绘列表框中删除一项时MFCMFC调用此方法调用此方法DrawItem()DrawItem()当确定自绘列表框项必须重绘时当确定自绘列表框项必须重绘时MFCMFC调用此方法调用此方法MeasureItem()MeasureItem()当一自绘列表框被创建时当一自绘列

20、表框被创建时MFCMFC调用此方法来决定列表框的调用此方法来决定列表框的维数维数VKeyToItem()VKeyToItem()用户可替换此方法,来处理具有用户可替换此方法,来处理具有LBS_WANTKEYBOARDINPUTLBS_WANTKEYBOARDINPUT样式样式 的列表框的的列表框的WM_KEYDOWNWM_KEYDOWN能被替换的能被替换的CListBoxCListBox类类的虚拟方法的虚拟方法第12页/共38页第11页/共38页第十二页,共38页。创建创建(chungjin)和初始化和初始化CListBox对象对象(1) 用用C+关键字关键字new和构造函数和构造函数CLis

21、tBox:CListBox() 为为CListBox对象分配一个对象分配一个(y )实例。实例。例如,下面代码分配一个例如,下面代码分配一个CListBox对象并返回指向该对象的指针:对象并返回指向该对象的指针: ClistBox *pMyListBox=new CListBox; 指针指针pMyListBox用用CListBox:Create()方法进行初始化。方法进行初始化。该方法声明如下:该方法声明如下: BOOL Create ( DWORD dwStyle, / dwStyle是列表框控件的窗口样式是列表框控件的窗口样式 const Recy& rect, / rect是一个

22、矩形,它指明控件的大小和位置是一个矩形,它指明控件的大小和位置(wi zhi) CWnd* pParentWnd, / pParentWnd是指向控件所有者的指针是指向控件所有者的指针 UINT nID / nID是父窗口用来与列表框通信的控件标识是父窗口用来与列表框通信的控件标识 );(2) 初始化初始化CListBoxCListBox对象并赋与它一个对象并赋与它一个Windows列表框,列表框, 通过方法通过方法CListBox:Create()CListBox:Create()设置列表框的参数和样式。设置列表框的参数和样式。第13页/共38页第12页/共38页第十三页,共38页。第14页

23、/共38页第13页/共38页第十四页,共38页。1. 应用程序的界面设计应用程序的界面设计单选按钮组单选按钮组的的IDID都为都为IDC_STATICIDC_STATIC,说明,说明不同的控件不同的控件可以有可以有相同相同的的IDID。因为单选按。因为单选按钮组只是用来显示一组内容的钮组只是用来显示一组内容的属性属性, ,无具体操作无具体操作#define IDC_Age1_RADIO 1015#define IDC_Age1_RADIO 1015#define IDC_Age2_RADIO 1016#define IDC_Age2_RADIO 1016#define IDC_Age3_RAD

24、IO 1017#define IDC_Age3_RADIO 1017#define IDC_Boy_RADIO #define IDC_Boy_RADIO 10231023#define IDC_Girl_RADIO #define IDC_Girl_RADIO 10241024同一组单选按钮同一组单选按钮必须必须一个接一个一个接一个地放进地放进对话框中对话框中中间不能中断中间不能中断对于对于成组成组的单选按钮,的单选按钮,只在每组的第一个按钮只在每组的第一个按钮的属性窗口中选中的属性窗口中选中Group第15页/共38页第14页/共38页第十五页,共38页。2. 应用程序的代码应用程序的代码

25、(di m)编程部分编程部分 控控件件及及其其连连接接的的变变量量ID变变量量名名类类型型I ID DC C_ _D DA AT TE E_ _C CH HE EC CK Km m_ _D Da at te eC Ch he ec ck kB BO OO OL LI ID DC C_ _T TI IM ME E_ _C CH HE EC CK Km m_ _T Ti im me eC Ch he ec ck kB BO OO OL LI ID DC C_ _D DA AT TE E_ _E ED DI IT Tm m_ _D Da at te eE Ed di it tC CE Ed di i

26、t tI ID DC C_ _T TI IM ME E_ _E ED DI IT Tm m_ _T Ti im me eE Ed di it tC CE Ed di it tI ID DC C_ _B Bo oy y_ _R RA AD DI IO Om m_ _S Se ex xR Ra ad di io oC CB Bu ut tt to on nI ID DC C_ _A Ag ge e1 1_ _R RA AD DI IO Om m_ _A Ag ge eR Ra ad di io oC CB Bu ut tt to on nI ID DC C_ _R Re es su ul lt t

27、_ _E ED DI IT Tm m_ _R Re es su ul lt tE Ed di it tC CE Ed di it tI ID DC C_ _E EN NG GL LI IS SH H_ _R RA AD DI IO Om m_ _E En ng gl li is sh hi in nt tI ID DC C_ _C CO OM MB BO O_ _E ED DI IT Tm m_ _C Co om mb bo oE Ed di it tC CS St tr ri in ng gI ID DC C_ _R RE EC CO OR RD D_ _C CO OM MB BO Om m

28、_ _R Re ec co or rd dC CC Co om mb bo oB Bo ox xI ID DC C_ _S SH HO OW W_ _C CO OM MB BO O_ _B BU UT TT TO ON Nm m_ _C Co om mb bo o_ _B Bu ut tt to on nC CB Bu ut tt to on n第16页/共38页第15页/共38页第十六页,共38页。 方法方法(fngf)的实现的实现 控控件件的的连连接接方方法法ID方方法法IDC_DATE_CHECKOnDateCheck()IDC_TIME_CHECKOnTimeCheck()IDC_EN

29、ABLE_BUTTONOnEnableButton()IDC_DISABLE_BUTTONOnDisableButton()IDC_SHOW_BUTTONOnShowButton()IDC_HIDE_BUTTONOnHideButton()IDC_Show_Sex_Age_BUTTONOnShowSexAgeButton()IDC_SHOW_COMBO_BUTTONOnShowComboButton()IED_EXIT_BUTTONOnExitButton()第17页/共38页第16页/共38页第十七页,共38页。为复选框为复选框IDC_TIME_CHECK添加添加(tin ji)代码代码vo

30、id CSELECTBOXDlg:OnTimeCheck() void CSELECTBOXDlg:OnTimeCheck() / / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码 UpdateData(TRUE); UpdateData(TRUE); if(m_TimeCheck=TRUE) if(m_TimeCheck=TRUE) CTime tNow; CTime tNow; tNow=CTime:GetCurrentTime(); tNow=CTime:GetCurrentTime(); CString sNow=tNow.Format(%I:%M:%S); CString s

31、Now=tNow.Format(%I:%M:%S); m_TimeEdit.SetSel(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(sNow); m_TimeEdit.ReplaceSel(sNow); else else m_TimeEdit.SetSel(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(); m_TimeEdit.ReplaceSel(); UpdateData(FALSE);UpdateData(FALSE); 其中函数其中函数(hnsh)Form

32、at(hnsh)Format的参数的参数%I%I是时间的小时表示法(是时间的小时表示法(0101到到1212),),%m%m是分是分的表示法(的表示法(0000到到5959),),%S%S是秒的表示法(是秒的表示法(0000到到5959)第18页/共38页第17页/共38页第十八页,共38页。给给Enable按钮添加按钮添加(tin ji)代码代码OnEnableButton()方法方法(fngf)的实现代码如下:的实现代码如下:void CSELECTBOXDlg:OnEnableButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始GetDlg

33、Item(IDC_DATE_CHECK)-EnableWindow(TRUE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);/添加代码结束添加代码结束第19页/共38页第18页/共38页第十九页,共38页。为为Disable按钮连接按钮连接(linji)代码代码 OnDisableButton()方法的实现代码如下()方法的实现代码如下(rxi):void CSELECTBOXDlg:OnDisableButton() / 在此

34、处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE);m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);/添加代码结束添加代码结束第20页/共38页第19页/共38页第二十页,共38页。为为Show Again按钮添加按钮添加(tin ji)代码代码在函数在函数OnShowButton()方法中添加方法中添加(tin

35、 ji)实现代码如下:实现代码如下:void CSELECTBOXDlg:OnShowButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加添加(tin ji)代码开始代码开始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_ED

36、IT)-EnableWindow(SW_SHOW);m_TimeEdit.ShowWindow(SW_SHOW); /添加添加(tin ji)代码结束代码结束第21页/共38页第20页/共38页第二十一页,共38页。为为Hide the Clock Setting按钮添加实现按钮添加实现(shxin)代码代码函数函数OnHideButton()方法中输入以下实现代码:方法中输入以下实现代码:void CSELECTBOXDlg:OnHideButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始GetDlgItem(IDC_DATE_CHECK)-E

37、nableWindow(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_HIDE);m_DateEdit.ShowWindow(SW_HIDE);m_TimeEdit.ShowWindow(SW_HIDE);/添加代码结束添加代码结束函数函数ShowWindow()是基类是基类CWnd的成员函数,它表示是否显示对象窗的成员函数,它表示是否显示对象窗口口(chungku),参数,参数SW_SHOW表示显示,表示显示,SW_HIDE表示隐藏。表示隐藏。第22页/共38页第21页/共38页第二十二页,共38页。给给Show_the_Sex_an

38、d_Age按钮添加按钮添加(tin ji)代码代码OnShowSexAgeButton()方法的实现代码如下:方法的实现代码如下:void CSELECTBOXDlg:OnShowSexAgeBUTTON() / 在此处加入在此处加入(jir)控件通知句柄代码控件通知句柄代码 char sEdit50; int iSexRADIO; int iAgeRADIO; iSexRADIO=GetCheckedRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO); if(iSexRADIO=IDC_Boy_RADIO) strcpy(sEdit,The boys age

39、is); if(iSexRADIO=IDC_Girl_RADIO) strcpy(sEdit,The girls age is); iAgeRADIO=GetCheckedRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO); if(iAgeRADIO=IDC_Age1_RADIO) strcat(sEdit, great than 20); if(iAgeRADIO=IDC_Age2_RADIO) strcat(sEdit, between 15 and 20); if(iAgeRADIO=IDC_Age3_RADIO) strcat(sEdit, less

40、than 15); m_ResultEdit.SetSel(0,-1); m_ResultEdit.ReplaceSel(sEdit);第23页/共38页第22页/共38页第二十三页,共38页。为为Show_Combo按钮添加按钮添加(tin ji)代码代码OnShowComboButton()方法方法(fngf)的实现的代码如下:的实现的代码如下:void CSELECTBOXDlg:OnShowComboButton() UpdateData(TRUE); char sCourseEdit30; char sRecordEdit15; int iCourseRadio; iCourseRa

41、dio=GetCheckedRadioButton(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO); if(iCourseRadio=IDC_ENGLISH_RADIO) strcpy(sCourseEdit,English record is ); if(iCourseRadio=IDC_COMPUTER_RADIO)strcpy(sCourseEdit,Computer record is ); if(iCourseRadio=IDC_NATURE_RADIO)strcpy(sCourseEdit,Natural record is ); m_Record.GetW

42、indowText(sRecordEdit,15); strcat(sCourseEdit,); strcat(sCourseEdit,sRecordEdit); m_ComboEdit=_T(sCourseEdit); UpdateData(FALSE);第24页/共38页第23页/共38页第二十四页,共38页。给给OnExitButton()方法方法(fngf)添加代码添加代码OnExitButton()的实现代码如下:的实现代码如下:void CSELECTBOXDlg:OnExitButton() / 在此处加入控件通知在此处加入控件通知(tngzh)句柄句柄代码代码/添加代码开始添加

43、代码开始OnOK();/添加代码结束添加代码结束第25页/共38页第24页/共38页第二十五页,共38页。初始化单选按钮初始化单选按钮BOOL CSELECTBOXDlg:OnInitDialog()BOOL CSELECTBOXDlg:OnInitDialog()CDialog:OnInitDialog();CDialog:OnInitDialog(); / IDM_ABOUTBOX must be in the system command range. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUT

44、BOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX 0 xF000); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,s

45、trAboutMenu); 第26页/共38页第25页/共38页第二十六页,共38页。SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, TRUE);/ Set big icon/ Set big icon SetIcon(m_hIcon, FALSE); SetIcon(m_hIcon, FALSE);/ Set small icon/ Set small icon/ / 在此加入在此加入(jir)(jir)其他初始化代码其他初始化代码(Add extra initialization here)(Add extra initialization here) Ch

46、eckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO); CheckRadioButton(IDC_Age1_RADIO,IDC_Age3_RADIO,IDC_Age2_RADIO); UpdateData(FALSE); UpdateData(FALSE); m_English=0;

47、 m_English=0; m_Record.AddString(85); m_Record.AddString(85); m_Record.AddString(90); m_Record.AddString(90); m_Record.AddString(95); m_Record.AddString(95); m_Record.SelectString(-1,95); m_Record.SelectString(-1,95); UpdateData(FALSE); UpdateData(FALSE); return TRUE;/return TRUE unless you set the

48、focus return TRUE;/return TRUE unless you set the focus toto a control a control 第27页/共38页第26页/共38页第二十七页,共38页。如图创建应用程序,在如图创建应用程序,在“形状形状”列表框中选择要绘制图形,在列表框中选择要绘制图形,在“笔颜色笔颜色”下拉列表框选下拉列表框选择画笔的颜色,在择画笔的颜色,在“刷子颜色刷子颜色”下拉列表框中选择画刷的颜色。在下拉列表框中选择画刷的颜色。在“线型线型”组合框选择组合框选择画笔的线型,在画笔的线型,在“填充填充(tinchng)(tinchng)类型类型”中选择画

49、刷填充中选择画刷填充(tinchng)(tinchng)类型。单击类型。单击“绘绘图图” ” 按钮按照前面的选项绘制图形,单击按钮按照前面的选项绘制图形,单击“退出退出”按钮退出程序。按钮退出程序。第28页/共38页第27页/共38页第二十八页,共38页。静态文本静态文本(wnbn) IDC_STATIC(wnbn) IDC_STATIC 形状形状列表框列表框 IDC_LIST_SHAPE IDC_LIST_SHAPE静态文本静态文本 IDC_STATIC IDC_STATIC 刷子刷子(shu zi)(shu zi)颜颜色色下拉列表框下拉列表框 IDC_COMBO_BRUSHCOLOR ID

50、C_COMBO_BRUSHCOLOR静态文本静态文本 IDC_STATICIDC_STATIC 笔颜色笔颜色下拉列表框下拉列表框 IDC_COMBO_PENCOLORIDC_COMBO_PENCOLOR“笔颜色笔颜色”下拉列表框下拉列表框-单击单击鼠标右键鼠标右键-Properties-Data选项卡选项卡-输入颜色输入颜色(输完一行输完一行(yxng)后,后,按下按下Ctrl+Enter键键)。同理处理同理处理“画刷颜色画刷颜色”下拉列表下拉列表框框第29页/共38页第28页/共38页第二十九页,共38页。 name ID Caption name ID Caption组合组合(zh)(zh

51、)框框 IDC_STATIC IDC_STATIC 线型线型单选按钮单选按钮 IDC_RADIO_SOLID Solid IDC_RADIO_SOLID Solid单选按钮单选按钮 IDC_RADIO_DASH Dash IDC_RADIO_DASH Dash单选按钮单选按钮 IDC_RADIO_DOT Dot IDC_RADIO_DOT Dot单选按钮单选按钮 IDC_RADIO_DASHDOT DashDot IDC_RADIO_DASHDOT DashDotname ID Captionname ID Caption组合框组合框 IDC_STATIC IDC_STATIC 填充填充(ti

52、nchng)(tinchng)类型类型单选按钮单选按钮 IDC_RADIO_SOLIDBRUSH SolidBrush IDC_RADIO_SOLIDBRUSH SolidBrush单选按钮单选按钮 IDC_RADIO_CROSS IDC_RADIO_CROSSCrossCross单选按钮单选按钮 IDC_RADIO_PDIAGONAL PDiagonal IDC_RADIO_PDIAGONAL PDiagonal单选按钮单选按钮 IDC_RADIO_BDIAGONAL BDiagonal IDC_RADIO_BDIAGONAL BDiagonalSolid -Solid -鼠标右键鼠标右键

53、- -Properties-Properties-选中选中GroupGroup选项。注选项。注意创建单选按钮时要按照意创建单选按钮时要按照(nzho)(nzho)图中从上到下的顺序,这样保证了图中从上到下的顺序,这样保证了单选按钮的单选按钮的IDID值是连续的,才能保值是连续的,才能保证两组单选按钮的互斥性。证两组单选按钮的互斥性。下压式按钮下压式按钮 IDC_BTN_DRAWIDC_BTN_DRAW绘制绘制下压式按钮下压式按钮 IDOKIDOK退出退出第30页/共38页第29页/共38页第三十页,共38页。 为对话框中控件连接变量为对话框中控件连接变量Control IdsControl I

54、ds变量类型变量类型(lixng)(lixng)变量名称变量名称IDC_LIST_SHAPEIDC_LIST_SHAPECListBoxCListBoxm_ListShapem_ListShapeIDC_COMBO_PENCOLORIDC_COMBO_PENCOLORCComboBoxCComboBox m_ComboPenColorm_ComboPenColorIDC_COMBO_BRUSHCOLORIDC_COMBO_BRUSHCOLORCComboBoxCComboBox m_ComboBrushColorm_ComboBrushColor在文件在文件14_8Dlg14_8Dlg中的消息

55、处理函数中的消息处理函数OnInitDialog()OnInitDialog()中加入中加入(jir)(jir)代码如下:代码如下:m_ListShape.AddString(Line);m_ListShape.AddString(Line);m_ListShape.AddString(Circle);m_ListShape.AddString(Circle);m_ListShape.AddString(Rectangle);m_ListShape.AddString(Rectangle);m_ListShape.AddString(RoundRectangle);m_ListShape.Ad

56、dString(RoundRectangle);调用列表框类成员函数调用列表框类成员函数AddString()AddString()给列表框加入给列表框加入(jir)(jir)选项,完成列表框的初始化选项,完成列表框的初始化第31页/共38页第30页/共38页第三十一页,共38页。在在WorkspaceWorkspace窗口中,选择窗口中,选择ClassViewClassView卡,在类卡,在类CMy14_8DlgCMy14_8Dlg上单击鼠标右键,选择上单击鼠标右键,选择Add Add member variablemember variable菜单项,加入菜单项,加入publicpubli

57、c型变量如下所示:型变量如下所示:变量类型变量类型 变量名称变量名称 说明说明intint m_nPenStyle m_nPenStyle 标志标志(biozh)(biozh)由由“线型线型”组合框中所选择的组合框中所选择的画笔的类型画笔的类型intint m_nBrushStyle m_nBrushStyle 标志标志(biozh)(biozh)由由“填充类型填充类型”组合框中所选择的画刷组合框中所选择的画刷类型类型COLORREF m_crPenColor COLORREF m_crPenColor 标志标志(biozh)“(biozh)“笔颜色笔颜色”列表框中所选择的画笔颜色列表框中所选

58、择的画笔颜色COLORREF m_crBrushColor COLORREF m_crBrushColor 标志标志(biozh)“(biozh)“刷子颜色刷子颜色”列表框中所选择的画刷颜色列表框中所选择的画刷颜色第32页/共38页第31页/共38页第三十二页,共38页。在在CMy14_8Dlg.cppCMy14_8Dlg.cpp的的OnInitDialog()OnInitDialog()函数中加入代码如下:函数中加入代码如下:m_crPenColor = RGB(255,0,0);m_crPenColor = RGB(255,0,0);/默认笔颜色默认笔颜色m_crBrushColor =

59、RGB(255,0,0);m_crBrushColor = RGB(255,0,0);/默认刷颜色默认刷颜色m_nPenStyle = PS_SOLID;m_nPenStyle = PS_SOLID;/默认笔样式默认笔样式m_nBrushStyle = 0;m_nBrushStyle = 0;/默认刷样式为默认刷样式为SolidSolidm_ComboPenColor.SetCurSel(0);m_ComboPenColor.SetCurSel(0);/设置设置PenPen组合框的当前选项组合框的当前选项m_ComboBrushColor.SetCurSel(0);m_ComboBrushCo

60、lor.SetCurSel(0); /设置设置BrushBrush组合框的当前选项组合框的当前选项m_ListShape.SetCurSel(0);m_ListShape.SetCurSel(0);/设置默认的设置默认的ShapeShape/设置单选按钮按钮的初始状态设置单选按钮按钮的初始状态CheckRadioButton(IDC_RADIO_SOLID,IDC_RADIO_DASHDOT,IDC_RADIO_SOLID);CheckRadioButton(IDC_RADIO_SOLID,IDC_RADIO_DASHDOT,IDC_RADIO_SOLID);CheckRadioButton(IDC_RADIO_S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论