WindowsC程序设计.ppt

上传人:sh****n 文档编号:12561808 上传时间:2020-05-11 格式:PPT 页数:35 大小:457.31KB
返回 下载 相关 举报
WindowsC程序设计.ppt_第1页
第1页 / 共35页
WindowsC程序设计.ppt_第2页
第2页 / 共35页
WindowsC程序设计.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
2020/5/11,1,面向对象与可视化程序设计-VisualC+编程主讲教师:唐龙教授(计算机科学与技术系)黄维通博士(计算机与信息管理中心)清华大学2001年11月,2020/5/11,2,第十四章按钮类与列表框类及其应用,2020/5/11,3,内容提要,按钮控件及其方法列表框控件及其方法按钮控件的应用列表框控件的应用,2020/5/11,4,14.1.按钮控件,5,1.常见的按钮控件,复选框(Checkboxes)常用于只有两种完全相反状态的情况下单选按钮(Radiobuttons)适用于同一组属性相同的数据中选一个数据下压式按钮(Pushbuttons)适用于消息的发送分组框(Groupboxes)没有太多的操作只是在窗口中划分区域范围,6,2.Cbutton类和CBitmapButton类,Cbutton类是CWnd类直接派生的。CBitmapButton类又是Cbutton类直接派生的。在AfxWin.h中定义了Cbutton类。,2020/5/11,7,3.Cbutton类样式和方法,按钮不仅继承了一般的窗口式样,还可用winuser.h中所定义的按钮特有的式样。Cbutton类提供一些很有用的方法。,2020/5/11,8,3.Cbutton类样式和方法,2020/5/11,9,2020/5/11,10,4.CBitmapButton类的方法,LoadBitmaps()为CBitmapButton对象附上位图,最多可有4个位图,这些位图从资源文件中读取;AutoLoad()将对话框按钮和CBitmapButton()对象联系起来;SizeToContent()用于调整位图的尺寸大小。DrawItem()自动在一个按钮的用户区上画上位图,即用户可以自定义按钮。,2020/5/11,11,14.2.列表框控件,2020/5/11,12,1.列表框的用处,常用于从众多数据中选某一项(单项)或某几项(多项),如在对话框里,用列表框选择文件名、目录等。可以自带滚动条。有预定义的键盘接口,实现交互操作。可用键盘上的方向(箭头)键和PageUp或PageDown键,在列表框中进行数据的选择;设置适当的样式后,可与Shift或Ctrl键组合用。,2020/5/11,13,CListBox类是CWnd类派生。在AfxWin.h中定义了CListBox类。CListBox类控件有多种可用的样式。,2.CListBox类及其样式,2020/5/11,14,2020/5/11,15,特别值得注意的是具有LBS_NOTIFY样式的列表框将向其父窗口发送通知消息,要按消息映象项和消息处理方法来捕获和处理这些消息。消息映像项使用下面的基本格式:ON_Message(ControlID,ClassMethod),所有者类声明中的方法原型afx_msgvoidClassMethod();,发送消息的列表框控件的子窗口标识,处理消息的父类方法的名字,2020/5/11,16,2020/5/11,17,3.CListBox类的方法,通用方法单项选择特定方法多项选择特定方法字符串指定的方法虚拟方法,2020/5/11,18,(1)通用方法,通用方法用来获得和设置列表框数据的值和属性,所有的CListBox列表框,包括单选列表框、多选列表框和自绘列表框等都有这些方法。,2020/5/11,19,(2)单项选择特定方法,列表框的默认模式是单选项模式;所有的通用方法均适用于单选项列表框。只有两个类方法专门处理单选项列表框GetCurSel()获得当前选择列表框项的下标(基于0)SetCurSel()选择列表框字符串。,2020/5/11,20,特定多项选择列表框的CListBox类方法GetAnchorIndex()获取当前定位项的下标GetCaretIndex()获取具有光标矩形的项的下标GetSelCount()获取当前所选的项的数目GetSelItems()将所有当前被选项下标放入一整型数组缓冲区SelItemRange()切换多选择列表框项范围的选择状态SetAnchorIndex()在框中扩充选择设置开始(定位)项SetCaretIndex()在框中指定下标项设置光标矩形SetSel()在框中切换项目的选择状态,(3)多项选择特定方法,扩展了标准单选列表框的能力,解决了在一个列表框中选择多项带来的复杂性,2020/5/11,21,(4)字符串指定的方法,CLstBox指定列表框中字符串的方法AddString()加入一个字符串DeleteString()删除一个字符串Dir()从当前目录加文件名放入列表框FindString()搜索一字符串FindStringExact()搜索第一个与指定字符串匹配的字符串InsertString()在指定下标处插入一字符串ResetContent()清除列表框中的所有项SelectString()在单选列表框中搜索并选择一字符串,2020/5/11,22,(5)虚拟方法,CLstBox类还声明了几个虚拟方法,可从CListBox类中派生一些类替换到你的类中。,能被替换的ClistBox类的虚拟方法CharToItem()为自绘列表框(没有字符串)处理WM-CHARCompareItem()取得到排序的自绘列表框中新项的位置DeleteItem()从自绘列表框中删除一项时DrawItem()必要时,重绘时自绘列表框项MeasureItem()创建一自绘列表框时,决定列表框的维数VKeyToItem()处理具有LBS_WANTKEYBOARDINPUT样式的列表框的WM_KEYDOWN,2020/5/11,23,4.创建和初始化CListBox对象,构造函数CListBox:CListBox()和关键字new为CListBox对象分配一个实例;并返回指向该对象的指针:ClistBox*pMyListBox=newCListBox;CListBox:Create()初始化指针pMyListBox。初始化CListBox对象并赋于它一个Windows列表框,设置其参数和样式。,2020/5/11,24,4.创建和初始化CListBox对象,CListBox:Create()声明如下:BOOLCreate(DWORDdwStyle,/列表框控件的窗口样式constRecyif(m_TimeCheck=TRUE)CTimetNow;tNow=CTime:GetCurrentTime();CStringsNow=tNow.Format(%I:%M:%S);m_TimeEdit.SetSel(0,-1);m_TimeEdit.ReplaceSel(sNow);elsem_TimeEdit.SetSel(0,-1);m_TimeEdit.ReplaceSel();UpdateData(FALSE);,%I是小时的表示法(01到12)%m是分的表示法(00到59)%d是秒的表示法(00到59),2020/5/11,31,5.给Enable按钮添加代码,voidCSELECTBOXDlg:OnEnableButton()GetDlgItem(IDC_DATE_CHECK)-EnableWindow(TRUE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);,2020/5/11,32,6.为Disable按钮连接代码,voidCSELECTBOXDlg:OnDisableButton()GetDlgItem(IDC_DATE_CHECK)-EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE);m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);,2020/5/11,33,7.为ShowAgain按钮添加代码,voidCSELECTBOXDlg: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_SHOW);m_TimeEdit.ShowWindow(SW_SHOW);,2020/5/11,34,(第十四章)完,2020/5/11,35,第13-14章课后练习题,编写一个程序,用含有按钮和滚动条等控件的三个分组框,实现功能包括:控制显示日期和时间;选择四则运算,并显示数据;滚动条输入数据;注11月26日前完成,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!