版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、表表 14-1 CButton 类类中中按按钮钮特特有有的的样样式式 样样式式宏宏 说说明明 BS_3STATE 此此样样式式为为复复选选框框,但但是是方方框框可可以以被被选选中中,也也可可以以变变暗暗(表表明明复复选选框框无无效效) BS_AUTO3STATE 此此样样式式为为复复选选框框,但但是是方方框框可可以以被被选选中中,也也可可以以变变暗暗(表表明明复复选选框框无无效效),当当用用户户选选择择方方框框时时,它它的的选选中中状状态态会会自自动动转转换换 B BS S_ _A AU UT TO OC CH HE EC CK KB BO OX X 此此样样式式为为复复选选框框,当当用用户户
2、选选择择方方框框时时,它它的的选选中中状状态态会会自自动动转转换换 B BS S_ _A AU UT TO OR RI ID DI IO OB BU UT TT TO ON N 此此样样式式为为单单选选按按钮钮,当当用用户户选选中中圆圆圈圈时时,按按钮钮自自动动显显示示自自己己被被选选中中的的状状态态,同同时时使使其其它它具具有有相相同同样样式式的的同同组组的的单单选选按按钮钮处处于于未未被被选选中中的的状状态态 BS_CHECKBOX 创创建建一一个个复复选选框框,默默认认情情况况下下它它的的右右边边有有标标题题,当当与与 BS_LEFTTEXT一一起起使使用用时时,标标题题在在左左边边 B
3、 BS S_ _D DE EF FP PU US SH HB BU UT TT TO ON N 创创建建一一个个下下压压式式按按钮钮 BS_GROUPBOX 创创建建一一个个带带标标题题的的分分组组框框 BS_LEFTTEXT 当当和和一一个个单单选选按按钮钮或或复复选选按按钮钮一一起起使使用用时时,使使得得按按钮钮文文字字出出现现在在按按钮钮的的左左边边 BS_OWNERDRAW 创创建建自自定定义义按按钮钮, 当当按按钮钮视视觉觉被被改改变变时时, MFC 自自动动调调用用 DrawItem()方方法法,在在使使用用 CBitmapButton 类类时时,这这种种样样式式必必须须被被指指定
4、定 BS_PUSHBUTTON 创创建建一一个个下下压压式式按按钮钮,用用户户单单击击此此按按钮钮时时,向向系系统统发发送送 WM_COMMAND消消息息 BS_RADIOBUTTON 创创建建单单选选按按钮钮 第2页/共38页第1页/共38页第一页,共39页。表表 14-2 类类 CButton 的的方方法法 方方法法 说说明明 GetBitmap() 获获得得用用 SetBitmap()设设置置的的位位图图的的句句柄柄 GetButtonStyle() 获获得得有有关关按按钮钮控控件件样样式式的的信信息息 GetCheck() 获获得得按按钮钮控控件件选选中中的的状状态态 GetCurso
5、r() 获获得得通通过过 SetCursor()设设置置的的光光标标图图像像的的句句柄柄 GetIcon() 获获得得由由 SetIcon()设设置置的的图图标标句句柄柄 GetState() 获获得得按按钮钮控控件件的的选选中中、选选择择和和聚聚焦焦状状态态 SetBitmap() 指指定定按按钮钮上上显显示示的的位位图图 SetButtonStyle() 改改变变按按钮钮样样式式 SetCheck() 设设置置按按钮钮控控件件的的选选中中状状态态 SetCursor() 指指定定按按钮钮控控件件上上的的光光标标图图像像 SetIcon() 指指定定按按钮钮上上显显示示的的图图标标 SetS
6、tate() 设设置置按按钮钮控控件件的的选选择择状状态态 第3页/共38页第2页/共38页第二页,共39页。MFC调用方法调用方法DrawItem()自动在一个按钮的用户区上画上位自动在一个按钮的用户区上画上位(shn wi)图,即用户可以自定义按钮。图,即用户可以自定义按钮。有时必须调整有时必须调整(tiozhng)位图的尺寸大小,可以通过位图的尺寸大小,可以通过SizeToContent()方法进行调整方法进行调整(tiozhng)将对话框按钮将对话框按钮CBitmapButton()对象联系起来对象联系起来CBitmapButton类定义的两个初始类定义的两个初始化方法以增强按钮化方法
7、以增强按钮的功能的功能LoadBitmaps()AutoLoad()为为CBitmapButton对象对象附上位图,最多可有附上位图,最多可有4个个位图,这些位图从用于位图,这些位图从用于程序的资源文件中读取程序的资源文件中读取第4页/共38页第3页/共38页第三页,共39页。列表框类的结构列表框类的结构(jigu)和方法和方法MFC中中CListBox类的层次结构类的层次结构 列表框经常用在对话框里,如用列表框选择文件名、目录列表框经常用在对话框里,如用列表框选择文件名、目录等。列表框有一个预定义的键盘接口等。列表框有一个预定义的键盘接口(ji ku),用户可以用键盘,用户可以用键盘上的箭头
8、和上的箭头和PageUp或或PageDown键在列表框中进行数据的选择,键在列表框中进行数据的选择,或通过适当的样式设置,允许与或通过适当的样式设置,允许与Shift或或Ctrl键组合使用。键组合使用。列表框常应用于从众多数据列表框常应用于从众多数据(shj)中选某中选某一项一项第5页/共38页第4页/共38页第四页,共39页。CListBox()控件可用的样式 样式 说明 LBS_DISABLENOSCROLL 当列表框不需要滚动条时,滚动条无效 LBS_EXTENDSEL 允许使用鼠标及特殊键组合进行多项选择 LBS_HASSTRINGS 指明自绘的列表框,其中包括字符串选项 LBS_MU
9、LTICOLUMN 指明一个多列列表框,它含有一个水平滚动条,可以用 SetColumnWidth()方法设置列的宽度 LBS_MULTIPLESEL 用户通过单击或双击一项进行选择或取消选择 LBS_NOINTEGRALHEIGHT 将列表框设置为创建时指定的大小 LBS_NOREDRAW 列表框在变化时不重绘,用户可以在任何时候发送 WM_SETREDRAW 消息改变这种模式 LBS_NOSEL 指明列表框包含只能看不能选择的项 LBS_NOTIFY 当用户单击或双击时向父窗口发送消息 LBS_OWNERDRAWFIXED 指明列表框的所有者负责填写列表项,且列表框具有相同的高度 LBS_
10、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页第五页,共39页。 CListBox 消息的消息映像项消息映像项说明
11、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页第六页,共39页。 通通用用 CListBox 类类方方法法 方方法法 描描述述 GetCount() 获获得得列列表表框框中中列列表表项项数数目目 GetHorizontalExtent() 获获得得列列表表框框的的水水平平滚滚动动宽宽度度(按按像像素素) GetItemData() 获获得得列列表表框框项项有有关关的的
13、 32 位位值值 GetItemDataPtr() 获获得得指指向向列列表表框框项项的的指指针针 GetItemHeight() 获获得得列列表表框框中中项项的的高高度度 (1) 通用通用(tngyng)方法方法 通用通用(tngyng)方法用来获得和设置列表框数据的值和属性,方法用来获得和设置列表框数据的值和属性,所有的所有的CListBox列表框都有这些方法,包括单选列表框、多选列表框都有这些方法,包括单选列表框、多选列表框和自绘列表框等。列表框和自绘列表框等。第8页/共38页第7页/共38页第七页,共39页。(2) 单项选择特定单项选择特定(tdng)方法方法列表框的默认模式是单选项模式
14、;所有列表框的默认模式是单选项模式;所有(suyu)的通用方法均适用的通用方法均适用于单选项列表框。于单选项列表框。只有只有两个类方两个类方法专门处理单法专门处理单选项列表框选项列表框GetCurSel()GetCurSel()SetCurSel()SetCurSel()获得当前选择列表获得当前选择列表框项的下标框项的下标(基于基于0)选择列表框字符串选择列表框字符串第9页/共38页第8页/共38页第八页,共39页。 方法方法 说明说明 GetAnchorIndex()获得多项选择列表框中当前定位项的下标获得多项选择列表框中当前定位项的下标GetCaretIndex() 获得多项选择列表框中具
15、有光标矩形的项的获得多项选择列表框中具有光标矩形的项的下标下标GetSelCount()获得多项选择列表框中当前所选的项的数目获得多项选择列表框中当前所选的项的数目(shm)GetSelItems()将所有当前被选列表框项下标放入一整型数组缓冲区将所有当前被选列表框项下标放入一整型数组缓冲区SelItemRange() 切换多选择列表框项范围的选择状态切换多选择列表框项范围的选择状态SetAnchorIndex()在多项选择列表框中扩充选择设置开始在多项选择列表框中扩充选择设置开始(定位定位)项项SetCaretIndex() 在多项选择列表框中指定下标项设置光标矩形在多项选择列表框中指定下标
16、项设置光标矩形SetSel() 在多项选择列表框中切换项目的选择状态在多项选择列表框中切换项目的选择状态(3) 多项选择特定多项选择特定(tdng)方法方法多选项列表框扩展(kuzhn)了标准单项选择列表框的能力,可以解决在一个列表框中选择多项带来的复杂性特定多项选择列表框的CListBoxCListBox类方法第10页/共38页第9页/共38页第九页,共39页。(4) 字符串指定字符串指定(zhdng)的方法的方法 方法方法 说明说明 AddString() 在列表框中加入一个字符串在列表框中加入一个字符串DeleteString() 从列表框中删除一个字符串从列表框中删除一个字符串Dir(
17、) 从当前目录加文件名放入列表框从当前目录加文件名放入列表框FindString() 在列表框中搜索一字符串在列表框中搜索一字符串FindStringExact() 在列表框中搜索第一个与指定搜索字符串匹配的字符串在列表框中搜索第一个与指定搜索字符串匹配的字符串InsertString() 在列表框指定下标处插入在列表框指定下标处插入(ch r)一字符串一字符串ResetContent() 清除列表框中的所有项清除列表框中的所有项SelectString() 在单选列表框中搜索并选择一字符串在单选列表框中搜索并选择一字符串CListBox指定(zhdng)列表框中字符串的方法第11页/共38页
18、第10页/共38页第十页,共39页。(5) 虚拟虚拟(xn)方法方法CLstBox类还声明了几个虚拟类还声明了几个虚拟(xn)方法,你可以从方法,你可以从CListBox类中派生一些类替换到你的类中。类中派生一些类替换到你的类中。 方法方法 说明说明 CharToItem()CharToItem()可以替换此方法来为自绘列表框(没有字符串)处理可以替换此方法来为自绘列表框(没有字符串)处理WM-CHARWM-CHARCompareItem()CompareItem() 由由MFCMFC调用以得到排序的自绘列表框中的新项的位置调用以得到排序的自绘列表框中的新项的位置DeleteItem()Del
19、eteItem()当用户从自绘列表框中删除一项时当用户从自绘列表框中删除一项时MFCMFC调用此方法调用此方法DrawItem()DrawItem()当确定自绘列表框项必须重绘时当确定自绘列表框项必须重绘时MFCMFC调用此方法调用此方法MeasureItem()MeasureItem() 当一自绘列表框被创建时当一自绘列表框被创建时MFCMFC调用此方法来决定列表框的维数调用此方法来决定列表框的维数VKeyToItem()VKeyToItem()用户可替换此方法,来处理具有用户可替换此方法,来处理具有LBS_WANTKEYBOARDINPUTLBS_WANTKEYBOARDINPUT样式样式
20、 的列表框的的列表框的WM_KEYDOWNWM_KEYDOWN能被替换的CListBoxCListBox类的虚拟方法第12页/共38页第11页/共38页第十一页,共39页。创建创建(chungjin)和初始化和初始化CListBox对象对象(1) 用用C+关键字关键字new和构造函数和构造函数CListBox:CListBox() 为为CListBox对象对象(duxing)分配一个实例。分配一个实例。例如,下面代码分配一个例如,下面代码分配一个CListBox对象并返回指向该对象的指针:对象并返回指向该对象的指针: ClistBox *pMyListBox=new CListBox; 指针指
21、针pMyListBox用用CListBox:Create()方法进行初始化。方法进行初始化。该方法声明如下:该方法声明如下: BOOL Create ( DWORD dwStyle, / dwStyle是列表框控件的窗口样式是列表框控件的窗口样式 const Recy& rect, / rect是一个矩形,它指明控件的大小和位置是一个矩形,它指明控件的大小和位置 CWnd* pParentWnd, / pParentWnd是指向控件所有者的指针是指向控件所有者的指针 UINT nID / nID是父窗口用来与列表框通信是父窗口用来与列表框通信(tng xn)的控件标识的控件标识 );(
22、2) 初始化初始化CListBoxCListBox对象并赋与它一个对象并赋与它一个Windows列表框,列表框, 通过方法通过方法CListBox:Create()CListBox:Create()设置列表框的参数和样式。设置列表框的参数和样式。第13页/共38页第12页/共38页第十二页,共39页。14.2 按钮类及列表框类编程实例(shl)第14页/共38页第13页/共38页第十三页,共39页。1. 应用程序的界面设计应用程序的界面设计单选按钮组单选按钮组的的IDID都为都为IDC_STATICIDC_STATIC,说明,说明不同的控件不同的控件可以有可以有相同相同的的IDID。因为单选按
23、钮组只是用来显。因为单选按钮组只是用来显示一组内容的属性示一组内容的属性, ,无具体操作无具体操作#define IDC_Age1_RADIO 1015#define IDC_Age1_RADIO 1015#define IDC_Age2_RADIO 1016#define IDC_Age2_RADIO 1016#define IDC_Age3_RADIO 1017#define IDC_Age3_RADIO 1017#define IDC_Boy_RADIO 1023#define IDC_Boy_RADIO 1023#define IDC_Girl_RADIO 1024#define ID
24、C_Girl_RADIO 1024同一组单选按钮必须一个接一个地放进对话框中中间不能中断对于对于成组成组的单选按钮,的单选按钮,只在每组的第一个按钮只在每组的第一个按钮的属性窗口中选中的属性窗口中选中Group第15页/共38页第14页/共38页第十四页,共39页。2. 应用程序的代码应用程序的代码(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 I
25、M 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 it 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 d
26、i 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_ _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 n
27、t 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_ _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 o
28、n nC CB Bu ut tt to on n第16页/共38页第15页/共38页第十五页,共39页。 方法方法(fngf)的实现的实现 控控件件的的连连接接方方法法ID方方法法IDC_DATE_CHECKOnDateCheck()IDC_TIME_CHECKOnTimeCheck()IDC_ENABLE_BUTTONOnEnableButton()IDC_DISABLE_BUTTONOnDisableButton()IDC_SHOW_BUTTONOnShowButton()IDC_HIDE_BUTTONOnHideButton()IDC_Show_Sex_Age_BUTTONOnShowS
29、exAgeButton()IDC_SHOW_COMBO_BUTTONOnShowComboButton()IED_EXIT_BUTTONOnExitButton()第17页/共38页第16页/共38页第十六页,共39页。为复选框为复选框IDC_TIME_CHECK添加添加(tin ji)代码代码void CSELECTBOXDlg:OnTimeCheck() void CSELECTBOXDlg:OnTimeCheck() / / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码(di m)(di m) UpdateData(TRUE); UpdateData(TRUE); if(m_Ti
30、meCheck=TRUE) if(m_TimeCheck=TRUE) CTime tNow; CTime tNow; tNow=CTime:GetCurrentTime(); tNow=CTime:GetCurrentTime(); CString sNow=tNow.Format(%I:%M:%S); CString sNow=tNow.Format(%I:%M:%S); m_TimeEdit.SetSel(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(sNow); m_TimeEdit.ReplaceSel(sNow); els
31、e else m_TimeEdit.SetSel(0,-1); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(); m_TimeEdit.ReplaceSel(); UpdateData(FALSE);UpdateData(FALSE); 其中函数其中函数FormatFormat的参数的参数%I%I是时间的小时表示法(是时间的小时表示法(0101到到1212),),%m%m是分的表是分的表示法(示法(0000到到5959),),%S%S是秒的表示法(是秒的表示法(0000到到5959)第18页/共38页第17页/共38页第十七页,共39页。给给E
32、nable按钮添加按钮添加(tin ji)代码代码OnEnableButton()方法的实现代码如下:方法的实现代码如下:void CSELECTBOXDlg:OnEnableButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加添加(tin ji)代码开始代码开始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(TRUE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);/添
33、加添加(tin ji)代码结束代码结束第19页/共38页第18页/共38页第十八页,共39页。为为Disable按钮连接按钮连接(linji)代码代码 OnDisableButton()方法的实现代码()方法的实现代码(di m)如下:如下:void CSELECTBOXDlg:OnDisableButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码(di m)/添加代码添加代码(di m)开始开始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FA
34、LSE);m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);/添加代码添加代码(di m)结束结束第20页/共38页第19页/共38页第十九页,共39页。为为Show Again按钮添加按钮添加(tin ji)代码代码在函数在函数(hnsh)OnShowButton()方法中添加实现代码如下:方法中添加实现代码如下:void CSELECTBOXDlg:OnShowButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始GetDlgItem(IDC_DATE_CHECK)-En
35、ableWindow(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_SHOW);m_TimeEdit.ShowWindow(SW_SHOW); /添加代码结束添加代码结束第21页/共38页第20页/共38页第二十页,共39页。为为Hide the Clock Setting按钮添加实现按
36、钮添加实现(shxin)代码代码函数函数OnHideButton()方法中输入以下方法中输入以下(yxi)实现代码:实现代码:void CSELECTBOXDlg:OnHideButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始GetDlgItem(IDC_DATE_CHECK)-EnableWindow(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(SW_HIDE);m_DateEdit.ShowWindow(SW_HIDE);m_TimeEdit.ShowWindow(SW_HIDE);/添
37、加代码结束添加代码结束函数函数ShowWindow()是基类是基类CWnd的成员函数,它表示是否显示对象的成员函数,它表示是否显示对象窗口,参数窗口,参数SW_SHOW表示显示,表示显示,SW_HIDE表示隐藏。表示隐藏。第22页/共38页第21页/共38页第二十一页,共39页。给给Show_the_Sex_and_Age按钮添加按钮添加(tin ji)代码代码OnShowSexAgeButton()方法的实现代码方法的实现代码(di m)如下:如下:void CSELECTBOXDlg:OnShowSexAgeBUTTON() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码(di
38、m) char sEdit50; int iSexRADIO; int iAgeRADIO; iSexRADIO=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_RADIO,IDC_Age3_RADIO); if(iAg
39、eRADIO=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 than 15); m_ResultEdit.SetSel(0,-1); m_ResultEdit.ReplaceSel(sEdit);第23页/共38页第22页/共38页第二十二页,共39页。为为Show_Combo按钮添加按钮添加(tin ji)代码代码OnShowC
40、omboButton()方法的实现的代码方法的实现的代码(di m)如下:如下:void CSELECTBOXDlg:OnShowComboButton() UpdateData(TRUE); char sCourseEdit30; char sRecordEdit15; int iCourseRadio; iCourseRadio=GetCheckedRadioButton(IDC_ENGLISH_RADIO,IDC_NATURE_RADIO); if(iCourseRadio=IDC_ENGLISH_RADIO) strcpy(sCourseEdit,English record is )
41、; if(iCourseRadio=IDC_COMPUTER_RADIO)strcpy(sCourseEdit,Computer record is ); if(iCourseRadio=IDC_NATURE_RADIO)strcpy(sCourseEdit,Natural record is ); m_Record.GetWindowText(sRecordEdit,15); strcat(sCourseEdit,); strcat(sCourseEdit,sRecordEdit); m_ComboEdit=_T(sCourseEdit); UpdateData(FALSE);第24页/共3
42、8页第23页/共38页第二十三页,共39页。给给OnExitButton()方法方法(fngf)添加代码添加代码OnExitButton()的实现代码如下的实现代码如下(rxi):void CSELECTBOXDlg:OnExitButton() / 在此处加入控件通知句柄代码在此处加入控件通知句柄代码/添加代码开始添加代码开始OnOK();/添加代码结束添加代码结束第25页/共38页第24页/共38页第二十四页,共39页。初始化单选按钮初始化单选按钮BOOL CSELECTBOXDlg:OnInitDialog()BOOL CSELECTBOXDlg:OnInitDialog()CDialo
43、g:OnInitDialog();CDialog:OnInitDialog(); / IDM_ABOUTBOX must be in the system command range. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX 0 xF000); ASSERT(IDM_ABOUTBOX A
44、ppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); 第26页/共38页第25页/共38页第二十五页,共39页。SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, TRUE);/ Set big icon/ Set big icon SetIcon(m_hIcon, FALS
45、E); SetIcon(m_hIcon, FALSE);/ Set small icon/ Set small icon/ / 在此加入在此加入(jir)(jir)其他初始化代码其他初始化代码(Add extra initialization here)(Add extra initialization here) CheckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(IDC_Boy_RADIO,IDC_Girl_RADIO,IDC_Boy_RADIO); CheckRadioButton(
46、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; m_English=0; m_Record.AddString(85); m_Record.AddString(85); m_Record.AddString(90); m_Record.AddString(90); m_Record.AddString(95); m_Rec
47、ord.AddString(95); m_Record.SelectString(-1,95); m_Record.SelectString(-1,95); UpdateData(FALSE); UpdateData(FALSE); return TRUE;/return TRUE unless you set the focus return TRUE;/return TRUE unless you set the focus toto a control a control 第27页/共38页第26页/共38页第二十六页,共39页。如图创建应用程序,在如图创建应用程序,在“形状形状”列表框
48、中选择要绘制图形,在列表框中选择要绘制图形,在“笔颜色笔颜色”下拉列下拉列表框选择画笔的颜色,在表框选择画笔的颜色,在“刷子颜色刷子颜色”下拉列表框中选择画刷的颜色。在下拉列表框中选择画刷的颜色。在“线型线型”组合框选择画笔的线型,在组合框选择画笔的线型,在“填充类型填充类型”中选择画刷填充类型。单击中选择画刷填充类型。单击“绘图绘图” ” 按钮按照按钮按照(nzho)(nzho)前面的选项绘制图形,单击前面的选项绘制图形,单击“退出退出”按钮退出程序。按钮退出程序。第28页/共38页第27页/共38页第二十七页,共39页。静态静态(jngti)(jngti)文本文本 IDC_STATICID
49、C_STATIC 形状形状列表框列表框 IDC_LIST_SHAPE IDC_LIST_SHAPE静态文本静态文本(wnbn) IDC_STATIC(wnbn) IDC_STATIC 刷子颜色刷子颜色下拉列表框下拉列表框 IDC_COMBO_BRUSHCOLOR IDC_COMBO_BRUSHCOLOR静态文本静态文本 IDC_STATICIDC_STATIC 笔颜色笔颜色下拉列表框下拉列表框 IDC_COMBO_PENCOLORIDC_COMBO_PENCOLOR“笔颜色笔颜色”下拉列表框下拉列表框-单击鼠标右键单击鼠标右键-Properties-Data选项卡选项卡-输入输入(shr)颜色
50、颜色(输完一输完一行后,按下行后,按下Ctrl+Enter键键)。同理处理同理处理“画刷颜色画刷颜色”下拉下拉列表框列表框第29页/共38页第28页/共38页第二十八页,共39页。 name ID Caption name ID Caption组合(zh)(zh)框 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_R
51、ADIO_DASHDOT DashDot IDC_RADIO_DASHDOT DashDotname ID Captionname ID Caption组合框 IDC_STATIC IDC_STATIC 填充(tinchng)(tinchng)类型单选按钮 IDC_RADIO_SOLIDBRUSH SolidBrush IDC_RADIO_SOLIDBRUSH SolidBrush单选按钮 IDC_RADIO_CROSS IDC_RADIO_CROSSCrossCross单选按钮 IDC_RADIO_PDIAGONAL PDiagonal IDC_RADIO_PDIAGONAL PDiagon
52、al单选按钮 IDC_RADIO_BDIAGONAL BDiagonal IDC_RADIO_BDIAGONAL BDiagonalSolid -Solid -鼠标右键鼠标右键 - -Properties-Properties-选中选中GroupGroup选选项。注意创建单选按钮时要项。注意创建单选按钮时要按照按照(nzho)(nzho)图中从上到下图中从上到下的顺序,这样保证了单选按的顺序,这样保证了单选按钮的钮的IDID值是连续的,才能保值是连续的,才能保证两组单选按钮的互斥性。证两组单选按钮的互斥性。下压式按钮 IDC_BTN_DRAWIDC_BTN_DRAW绘制下压式按钮 IDOKID
53、OK退出第30页/共38页第29页/共38页第二十九页,共39页。 为对话框中控件连接变量为对话框中控件连接变量Control IdsControl Ids变量类型变量类型(lixng)(lixng)变量名称变量名称IDC_LIST_SHAPEIDC_LIST_SHAPECListBoxCListBoxm_ListShapem_ListShapeIDC_COMBO_PENCOLORIDC_COMBO_PENCOLORCComboBoxCComboBoxm_ComboPenColorm_ComboPenColorIDC_COMBO_BRUSHCOLORIDC_COMBO_BRUSHCOLORCC
54、omboBoxCComboBoxm_ComboBrushColorm_ComboBrushColor在文件在文件14_8Dlg14_8Dlg中的消息处理函数中的消息处理函数OnInitDialog()OnInitDialog()中加入代码如下:中加入代码如下:m_ListShape.AddString(Line);m_ListShape.AddString(Line);m_ListShape.AddString(Circle);m_ListShape.AddString(Circle);m_ListShape.AddString(Rectangle);m_ListShape.AddString
55、(Rectangle);m_ListShape.AddString(RoundRectangle);m_ListShape.AddString(RoundRectangle);调用列表框类成员调用列表框类成员(chngyun)(chngyun)函数函数AddString()AddString()给列表框加入选项,完成列表框的初始化给列表框加入选项,完成列表框的初始化第31页/共38页第30页/共38页第三十页,共39页。在在WorkspaceWorkspace窗口中,选择窗口中,选择ClassViewClassView卡,在类卡,在类CMy14_8DlgCMy14_8Dlg上单击鼠标右键,选上
56、单击鼠标右键,选择择Add member variableAdd member variable菜单项,加入菜单项,加入(jir)public(jir)public型变量如下所示:型变量如下所示:变量类型变量类型 变量名称变量名称 说明说明intint m_nPenStyle m_nPenStyle 标志由标志由“线型线型”组合框中所选择的画笔组合框中所选择的画笔的类型的类型intint m_nBrushStyle m_nBrushStyle 标志由标志由“填充类型填充类型”组合框中所选择的画刷类型组合框中所选择的画刷类型COLORREF m_crPenColor COLORREF m_crP
57、enColor 标志标志“笔颜色笔颜色”列表框中所选择的画笔颜色列表框中所选择的画笔颜色COLORREF m_crBrushColor COLORREF m_crBrushColor 标志标志“刷子颜色刷子颜色”列表框中所选择的画刷颜色列表框中所选择的画刷颜色第32页/共38页第31页/共38页第三十一页,共39页。在在CMy14_8Dlg.cppCMy14_8Dlg.cpp的的OnInitDialog()OnInitDialog()函数中加入代码函数中加入代码(di m)(di m)如下:如下:m_crPenColor = RGB(255,0,0);m_crPenColor = RGB(25
58、5,0,0);/默认笔颜色默认笔颜色m_crBrushColor = 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_ComboBru
59、shColor.SetCurSel(0);m_ComboBrushColor.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,
60、IDC_RADIO_SOLID);CheckRadioButton(IDC_RADIO_SOLIDBRUSH,IDC_RADIO_BDIAGONAL,CheckRadioButton(IDC_RADIO_SOLIDBRUSH,IDC_RADIO_BDIAGONAL,IDC_RADIO_SOLIDBRUSH);IDC_RADIO_SOLIDBRUSH); 在这里设置了各变量的初始值。默认笔和刷的颜色为红色,笔的线形为实在这里设置了各变量的初始值。默认笔和刷的颜色为红色,笔的线形为实线,画刷填充类型为实填充。线,画刷填充类型为实填充。第33页/共38页第32页/共38页第三十二页,共39页。void CMy14_8Dl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工业元宇宙环境时序回溯推演变量效应方案
- 2026年类脑计算向深而行培育新质生产力计算增长极
- 2026年设备与晶圆厂协同研发联合实验室建设指南
- 2026年预测性维护较传统维保成本降低30%40%实现路径
- 2026年航空货运企业精细化管理系统与成本控制实战手册
- 2026年社区垃圾分类源头减量与资源化利用操作手册
- 2026年非地面网络纳入3GPP体系:6G星地融合技术路线
- 2026年东中西部冷链布局不均:国家骨干冷链物流基地网络化布局策略
- 2026年海事仲裁与临时仲裁规则在航运纠纷中适用
- 2025年公务员(城市固体废弃物处理)试题及答案
- 动物的呼吸和氧气运输
- 醛-亚胺-壳聚糖水凝胶的构筑及性能研究进展
- 无人机行业信息安全培训
- 管理会计学 第10版 课件 第4章 经营预测
- HACCP计划年度评审报告
- 2023年华南师范大学教师招聘考试历年真题库
- 2023年新改版教科版五年级下册科学全册练习题(一课一练)
- 耳尖放血课件完整版
- GB/T 3292.1-2008纺织品纱线条干不匀试验方法第1部分:电容法
- GB/T 16177-2007公共航空运输服务质量
- GB/T 12149-2017工业循环冷却水和锅炉用水中硅的测定
评论
0/150
提交评论