Windows C++ 程序设计14

上传人:油条 文档编号:26995598 上传时间:2018-01-05 格式:PPT 页数:35 大小:262KB
返回 下载 相关 举报
Windows C++ 程序设计14_第1页
第1页 / 共35页
Windows C++ 程序设计14_第2页
第2页 / 共35页
Windows C++ 程序设计14_第3页
第3页 / 共35页
Windows C++ 程序设计14_第4页
第4页 / 共35页
Windows C++ 程序设计14_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Windows C++ 程序设计14》由会员分享,可在线阅读,更多相关《Windows C++ 程序设计14(35页珍藏版)》请在金锄头文库上搜索。

1、2018/1/5,1,面向对象与可视化程序设计 -Visual C+ 编程主讲教师:唐 龙教授 (计算机科学与技术系)黄维通博士 (计算机与信息管理中心)清 华 大 学2001年11月,2018/1/5,2,第十四章按钮类与列表框类及其应用,2018/1/5,3,内容提要,按钮控件及其方法列表框控件及其方法按钮控件的应用列表框控件的应用,2018/1/5,4,14.1. 按钮控件,5,1. 常见的按钮控件,复选框(Checkboxes)常用于只有两种完全相反状态的情况下单选按钮(Radiobuttons)适用于同一组属性相同的数据中选一个数据下压式按钮(Pushbuttons)适用于消息的发送

2、分组框(Group boxes)没有太多的操作只是在窗口中划分区域范围,6,2.Cbutton类和CBitmapButton类,Cbutton类是CWnd类直接派生的。CBitmapButton类又是Cbutton类直接派生的。在AfxWin.h中定义了Cbutton类。,2018/1/5,7,3. Cbutton类样式和方法,按钮不仅继承了一般的窗口式样,还可用winuser.h中所定义的按钮特有的式样。Cbutton类提供一些很有用的方法。,2018/1/5,8,3. Cbutton类样式和方法,2018/1/5,9,2018/1/5,10,4.CBitmapButton类的方法,Load

3、Bitmaps()为CBitmapButton对象附上位图,最多可有4个位图,这些位图从资源文件中读取;AutoLoad()将对话框按钮和CBitmapButton()对象联系起来;SizeToContent() 用于调整位图的尺寸大小。DrawItem()自动在一个按钮的用户区上画上位图,即用户可以自定义按钮。,2018/1/5,11,14.2. 列表框控件,2018/1/5,12,1. 列表框的用处,常用于从众多数据中选某一项(单项)或某几项(多项) ,如在对话框里,用列表框选择文件名、目录等。可以自带滚动条。有预定义的键盘接口,实现交互操作。可用键盘上的方向(箭头)键和PageUp或Pa

4、geDown键,在列表框中进行数据的选择;设置适当的样式后,可与Shift或Ctrl键组合用。,2018/1/5,13,CListBox类是CWnd类派生。在AfxWin.h中定义了CListBox类。CListBox类控件有多种可用的样式。,2. CListBox类及其样式,2018/1/5,14,2018/1/5,15,特别值得注意的是具有LBS_NOTIFY样式的列表框将向其父窗口发送通知消息,要按消息映象项和消息处理方法来捕获和处理这些消息。消息映像项使用下面的基本格式:ON_Message(Control ID,ClassMethod),所有者类声明中的方法原型afx_msg voi

5、d ClassMethod();,发送消息的列表框控件的子窗口标识,处理消息的父类方法的名字,2018/1/5,16,2018/1/5,17,3. CListBox类的方法,通用方法单项选择特定方法多项选择特定方法字符串指定的方法 虚拟方法,2018/1/5,18,(1) 通用方法,通用方法用来获得和设置列表框数据的值和属性,所有的CListBox列表框,包括单选列表框、多选列表框和自绘列表框等都有这些方法。,2018/1/5,19,(2) 单项选择特定方法,列表框的默认模式是单选项模式;所有的通用方法均适用于单选项列表框。只有两个类方法专门处理单选项列表框GetCurSel()获得当前选择列

6、表框项的下标(基于0)SetCurSel()选择列表框字符串。,2018/1/5,20,特定多项选择列表框的CListBox类方法GetAnchorIndex() 获取当前定位项的下标GetCaretIndex() 获取具有光标矩形的项的下标GetSelCount() 获取当前所选的项的数目GetSelItems() 将所有当前被选项下标放入一整型数组缓冲区SelItemRange() 切换多选择列表框项范围的选择状态SetAnchorIndex() 在框中扩充选择设置开始(定位)项SetCaretIndex() 在框中指定下标项设置光标矩形SetSel() 在框中切换项目的选择状态,(3)

7、多项选择特定方法,扩展了标准单选列表框的能力,解决了在一个列表框中选择多项带来的复杂性,2018/1/5,21,(4) 字符串指定的方法,CLstBox指定列表框中字符串的方法AddString() 加入一个字符串DeleteString() 删除一个字符串Dir() 从当前目录加文件名放入列表框FindString() 搜索一字符串FindStringExact() 搜索第一个与指定字符串匹配的字符串InsertString() 在指定下标处插入一字符串ResetContent() 清除列表框中的所有项SelectString() 在单选列表框中搜索并选择一字符串,2018/1/5,22,(

8、5) 虚拟方法,CLstBox类还声明了几个虚拟方法,可从CListBox类中派生一些类替换到你的类中。,能被替换的ClistBox类的虚拟方法CharToItem() 为自绘列表框(没有字符串)处理WM-CHARCompareItem() 取得到排序的自绘列表框中新项的位置DeleteItem() 从自绘列表框中删除一项时DrawItem() 必要时,重绘时自绘列表框项MeasureItem() 创建一自绘列表框时,决定列表框的维数VKeyToItem() 处理具有LBS_WANTKEYBOARDINPUT样式 的列表框的WM_KEYDOWN,2018/1/5,23,4. 创建和初始化CLi

9、stBox对象,构造函数CListBox:CListBox()和关键字new为CListBox对象分配一个实例;并返回指向该对象的指针: ClistBox *pMyListBox = new CListBox;CListBox:Create()初始化指针pMyListBox。初始化CListBox对象并赋于它一个Windows列表框, 设置其参数和样式。,2018/1/5,24,4. 创建和初始化CListBox对象,CListBox:Create() 声明如下:BOOL Create ( DWORD dwStyle, /列表框控件的窗口样式 const Recy& rect,/控件的大小和位

10、置矩形 CWnd* pParentWnd,/指向控件所有者的指针 UINT nID /父窗口标识);,2018/1/5,25,14.3. 按钮控件及列表框控件的应用,2018/1/5,26,例14-1交互界面具有三个分组框,分组框含有按钮和列表框。,2018/1/5,27,1.应用程序的可视化编程,同一组单选按钮必须一个接一个地放进对话框中中间不能中断,2018/1/5,28,2.应用程序的代码编程部分,2018/1/5,29,3. 给有关按钮、编辑框等控件连接方法,2018/1/5,30,4.为复选框IDC_TIME_CHECK添加代码,void CSELECTBOXDlg:OnTimeCh

11、eck() UpdateData(TRUE); if(m_TimeCheck=TRUE) CTime tNow; tNow=CTime:GetCurrentTime(); CString sNow=tNow.Format(%I:%M:%S); m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(sNow); else m_TimeEdit.SetSel(0,-1); m_TimeEdit.ReplaceSel(); UpdateData(FALSE);,%I是小时的表示法(01到12)%m是分的表示法(00到59)%d是秒的表示法(00到59),201

12、8/1/5,31,5.给Enable按钮添加代码,void CSELECTBOXDlg:OnEnableButton() GetDlgItem(IDC_DATE_CHECK)-EnableWindow(TRUE); GetDlgItem(IDC_TIME_CHECK)-EnableWindow(TRUE); m_DateEdit.EnableWindow(TRUE); m_TimeEdit.EnableWindow(TRUE);,2018/1/5,32,6.为Disable按钮连接代码,void CSELECTBOXDlg:OnDisableButton() GetDlgItem(IDC_DA

13、TE_CHECK)-EnableWindow(FALSE); GetDlgItem(IDC_TIME_CHECK)-EnableWindow(FALSE); m_DateEdit.EnableWindow(FALSE); m_TimeEdit.EnableWindow(FALSE);,2018/1/5,33,7.为Show Again按钮添加代码,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_SHOW); m_TimeEdit.ShowWindow(SW_SHOW); ,2018/1/5,34,(第十四章)完,2018/1/5,35,第13-14章课后练习题,编写一个程序,用含有按钮和滚动条等控件的三个分组框,实现功能包括:控制显示日期和时间;选择四则运算,并显示数据;滚动条输入数据;注11月26日前完成,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号