第10章基本控件使用(二)课件.ppt
《第10章基本控件使用(二)课件.ppt》由会员分享,可在线阅读,更多相关《第10章基本控件使用(二)课件.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章章 基本控件使用(二)10.1 按钮类按钮类10.2 列表框类列表框类10.3 按钮类与列表框类的应用实例按钮类与列表框类的应用实例习题习题10.1 按钮类按钮是一个矩形窗口,通常包含一个标题用来说明按钮的作用。CButton(按钮控件)类是从CWnd类继承下来的,它在MFC窗口类中的位置如图10-1所示。图10-1CButton类在MFC窗口类的层次结构中的位置10.1.1 按钮类的结构按钮类的结构VC+在Afxwin.h中定义了CButton类的结构,结构代码如下:classCButton:publicCWndDECLARE_DYNAMIC(CButton)/Construc
2、torspublic:CButton();BOOLCreate(LPCTSTRlpszCaption,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);/AttributesUINTGetState()const;voidSetState(BOOLbHighlight);intGetCheck()const;voidSetCheck(intnCheck);UINTGetButtonStyle()const;voidSetButtonStyle(UINTnStyle,BOOLbRedraw=TRUE);#if(WINVER=0 x400)H
3、ICONSetIcon(HICONhIcon);HICONGetIcon()const;HBITMAPSetBitmap(HBITMAPhBitmap);HBITMAPGetBitmap()const;HCURSORSetCursor(HCURSORhCursor);HCURSORGetCursor();#endif/Overridables(forownerdrawonly)virtualvoidDrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct);/Implementationpublic:virtualCButton();protected:virtual
4、BOOLOnChildNotify(UINT,WPARAM,LPARAM,LRESULT*);表10-1就是CButton类中按钮特有的样式。表10-1 CButton类中按钮特有的样式10.1.2 按钮类的方法按钮类的方法按钮类(CButton类)提供了如下的访问方法,如表10-2所示。表10-2 CButton类的方法10.2 列表框类列表框类CListBox类在MFC类层次结构中的位置如图10-2所示。图10-2CListBox类在MFC类层次结构中的位置10.2.1 列表框类的结构列表框类的结构MFC定义了列表框类的结构,其结构如下:classCListBox:publicCWndDE
5、CLARE_DYNAMIC(CListBox)/Constructorspublic:CListBox();BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);/Attributes/forentirelistboxintGetCount()const;intGetHorizontalExtent()const;voidSetHorizontalExtent(intcxExtent);intGetTopIndex()const;intSetTopIndex(intnIndex);LCIDGetLocale()const
6、;LCIDSetLocale(LCIDnNewLocale);#if(WINVER=0 x400)intInitStorage(intnItems,UINTnBytes);UINTItemFromPoint(CPointpt,BOOL&bOutside)const;#endif/forsingle-selectionlistboxesintGetCurSel()const;intSetCurSel(intnSelect);/formultiple-selectionlistboxesintGetSel(intnIndex)const;/alsoworksforsingle-selectioni
7、ntSetSel(intnIndex,BOOLbSelect=TRUE);intGetSelCount()const;intGetSelItems(intnMaxItems,LPINTrgIndex)const;voidSetAnchorIndex(intnIndex);intGetAnchorIndex()const;/forlistboxitemsDWORDGetItemData(intnIndex)const;intSetItemData(intnIndex,DWORDdwItemData);void*GetItemDataPtr(intnIndex)const;intSetItemDa
8、taPtr(intnIndex,void*pData);intGetItemRect(intnIndex,LPRECTlpRect)const;intGetText(intnIndex,LPTSTRlpszBuffer)const;voidGetText(intnIndex,CString&rString)const;intGetTextLen(intnIndex)const;/SettableonlyattributesvoidSetColumnWidth(intcxWidth);BOOLSetTabStops(intnTabStops,LPINTrgTabStops);voidSetTab
9、Stops();BOOLSetTabStops(constint&cxEachStop);/takesanintintSetItemHeight(intnIndex,UINTcyItemHeight);intGetItemHeight(intnIndex)const;intFindStringExact(intnIndexStart,LPCTSTRlpszFind)const;intGetCaretIndex()const;intSetCaretIndex(intnIndex,BOOLbScroll=TRUE);/Operations/manipulatinglistboxitemsintAd
10、dString(LPCTSTRlpszItem);intDeleteString(UINTnIndex);intInsertString(intnIndex,LPCTSTRlpszItem);voidResetContent();intDir(UINTattr,LPCTSTRlpszWildCard);/selectionhelpersintFindString(intnStartAfter,LPCTSTRlpszItem)const;intSelectString(intnStartAfter,LPCTSTRlpszItem);intSelItemRange(BOOLbSelect,intn
11、FirstItem,intnLastItem);/Overridables(mustoverridedraw,measureandcompareforownerdraw)virtualvoidDrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct);virtualvoidMeasureItem(LPMEASUREITEMSTRUCTlpMeasureItemStruct);virtualintCompareItem(LPCOMPAREITEMSTRUCTlpCompareItemStruct);virtualvoidDeleteItem(LPDELETEITEMST
12、RUCTlpDeleteItemStruct);virtualintVKeyToItem(UINTnKey,UINTnIndex);virtualintCharToItem(UINTnKey,UINTnIndex);/Implementationpublic:virtualCListBox();protected:virtualBOOLOnChildNotify(UINT,WPARAM,LPARAM,LRESULT*);像所有的窗口一样,列表框也有窗口样式的组合。由于它们本身是窗口,因此除可用窗口样式外,还可以使用如表10-3所示的样式的组合。表10-3 列表框控件可用的样式表10-4显示了消
13、息映像项,它用于处理列表框通知。表10-4 CListBox消息的消息映像项10.2.2 列表框类的方法1通用方法表10-5给出了每个通用方法的简单描述。表10-5 CListBox类的通用方法2单选列表框的方法3多选列表框的方法这些方法作为通用方法的补充如表10-6所示。4特定字符串方法特定字符串的方法适用于单选择和多选择两种模式的列表框,它们处理列表框中的字符串项。表10-7列出了用于CListBox对象的字符串方法。表10-6 特定于多项选择列表框的CListBox类方法表10-7 CListBox类中字符串特定的方法5虚拟方法虚拟方法表10-8列出了CListBox类的虚拟方法,通过替
14、换可以完成MFC没有直接提供的功能。表10-8 可被替换的CListBox类的虚拟方法10.2.3 创建和初始化列表框对象创建和初始化列表框对象CListBox对象像大多数MFC对象一样,使用两步构造过程。创建一个列表框要执行下列步骤:(1)用C+关键字new和构造函数CListBox:CListBox()为CListBox对象分配一个实例。(2)初始化CListBox对象并赋于它一个Windows列表框,通过方法CListBox:Create()设置列表框的参数和样式。例如,下面的代码分配一个CListBox对象并返回指向该对象的指针:CListBox*pMyListBox=newCList
15、Box;指针pMyListBox用CListBox:Create()方法进行初始化。该方法声明如下:BOOLCreate(WORDdwStyle,/dwStyle是列表框控件的窗口样式constRecy&rect,/rect是一个矩形,它指明控件的大小和位置CWnd*pParentWnd,/pParentWnd是指向控件所有者的指针UINTnID/nID是父窗口用来与列表框通信的控件标识)10.3 按钮类与列表框类的应用实例按钮类与列表框类的应用实例例10-1 编写应用程序,其主窗口如图10-3所示,标题为“按钮与列表”。在这个窗口中,包含有三个标题,分别为Check Box、Radio Bo
16、x和Combo Box的分组框。在Check Box分组框中,包含两个复选框Date和Time,以及Enable、Disable、Show Again和Hide the Clock Setting四个按钮;在Radio Box分组框中,含有两个子分组框、一个按钮和一个编辑框,子分组框名字分别为Sex Selecting和Age Range,它们分别包含了一组单选按钮,此外还有一个名字为Show the Sex and Age的按钮;在Combo Box分组框中,有一个Course分组框(其中包含三个单选按钮)、一个名字为Record的下拉列表框、一个Show_Combo按钮和一个编辑框。(1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 基本 控件 使用 课件
限制150内