版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用CListCtrl功能时,首先提供CListView软件包中包含的可引用CListCtrl对象的13.2.3列表图幅。必须调用CListView的成员函数GetListCtrl。将CListCtrl/listCtrl设置为1 .需要定义以引用列表控件的类型列表控件是非常有用的控件之一,可以通过四种不同的方式显示信息集:大图标、小图标、列表视图或报告视图,如图13.10所示。13.2.3列表图幅,2 .修改列表控件的样式和列表控件的样式有两类:常规样式,如表13.7所示。13.2.3列表视图框架和LVS _ ex _ fullselect等VisualC添加到原始上方的扩展样式表示整个行选择
2、,但仅用于报告视图的显示方式。经常使用类似的扩展样式。LVS_EX_BORDERSELECT包含列表项目LVS_EX_GRIDLINES列表项目行显示行(仅限报表视图),13.2.3列表视图框架,3 .使用列表项的默认操作(1)函数SetImageList设置列表控件的关联图像列表。其基本体如下所示:cimcagelist * set imagelist(cimcagelist * p imagelist,intn imagelist);(2)函数InsertItem用于在列表控件中插入列表项。如果函数成功,则返回新列表项的索引号,否则返回-1。函数原型如下:intinsertitem (in
3、tnitem、lpctstrlpszitem);Intinsertitem (intnitem、lpctstrlpszitem、intnimage);(3)函数DeleteItem和DeleteAllItems分别用于删除指定的列表项和所有列表项,如BOOLDeleteItem(intnItem)。BOOLDeleteAllItems();13.2.3列表视图框架、(4)函数Arrange用于按指定重新排列列表项,如BOOLArrange(UINTnCode)。其中nCode用于指定对齐,LVA_ALIGNLEFT左对齐LVA_ALIGNTOP中的LVA_DEFAULT默认对齐LVA_SNAP
4、TOGRID用于将(5)函数InsertColumn插入列表控件中,以便所有图标都位于最近的网格位置基本体为intinsertcolumn (intncol、lpctstrlpszcolumnheading、intn format=LVC fmt _ left、int nwidth=-1、intn,13.2.3列表视图框架,(6)函数DeleteColumn用于从列表控件中删除指定列,如BOOLDeleteColumn(intnCol)。除了上述操作外,还有用于设置或获取列表控件的相关属性的函数。例如,SetColumnWidth用于设置指定列的像素宽度,GetItemCount用于返回列表控
5、件中的列表项目数。基本体为boolsetcolumnwidth (intncol,intcx)。IntGetItemCount();13.2.3列表图幅,4 .可以从列表控件的消息列表视图映射到MFCClassWizard的控制消息包括公共控制消息(如NM_DBLCLK)、标头控制消息和列表控制消息。典型的列表控制消息是通过单击LVN_ITEMACTIVATE启用LVN_COLUMNCLICK列用户更改了列表条目LVN_ITEMCHANGED当前列表条目LVN_ITEMCHANGING当前列表条目更改了,13.2.3列表视图框架,5示例:列表显示当前文件在此示例中,可以通过四种方式在列表视图中
6、显示当前文件夹中的文件:大图标、小图标、列表视图和报表视图。双击列表项目时,该项目的文本标签内容也会显示在消息对话框中。实施此示例有两个主要问题。一种方法是导入当前文件夹中的所有文件,另一种方法是导入要添加到与列表控件关联的图像列表中的各个文件的图标。13.2.4树状检视框,1 .树控件及其样式树控件由父节点和子节点组成。一个节点下的节点称为子节点,子节点上的节点称为该节点的父节点。树的顶层或根节点称为根节点。CTreeView框架使用树控件CTreeCtrl作为内置对象,因此其样式是控件的样式。典型的树控件样式修改方式与列表控件的常规样式修改方式相同,如表13.8所示。13.2.4树状检视框
7、,2 .树控件的常规操作(1)函数InsertItem用于将新节点插入树控件,如果操作成功,则函数返回新节点的句柄,否则返回NULL。函数原型如下:htreeiteminsertitem (uint nmask、lpctstrlpszitem、intnimage、intnselectimage、uin tnstate、uitnstamassk、lpctstrlpszitem、intni mage、intnselect imagehtreeiteminsertitem(lpctstrlpszitem,htreeitemparent=tvi _ root,htreeiteminsertafter=
8、tvi _ last);htreeiteminsertitem:lpctstrlpszitem,intnimage,intnselectedimage,htreeitemparent=tvi _ root,htreeitemparent、13.2.4树状检视框、(2)函数DeleteItem和DeleteAllItems分别用于删除指定的节点和所有节点。他们的原型如下:BOOLDeleteAllItems();bool delete item(htree itemht);(3)函数Expand用于展开或折叠指定父节点的所有子节点,例如bool Expand(htree temht,uint n
9、code)。其中hItem指定要展开或折叠的节点的句柄,nCode用于标记动作。TVE_COLLAPSE折叠所有子节点TVE_COLLAPSERESET,并删除所有子节点TVE_EXPAND。如果当前展开了所有子节点TVE_TOGGLE,则将其折叠;反之,如果展开了所有子节点TVE _ TOGGLE,则使用13.2.4树图幅、(4)函数GetNextItem获取下一个节点的句柄。其基本体如下所示:htreeitemgetnextitem(htree item item,uint ncode);其中hItem指定参考节点的句柄,nCode用于标记与hItem的关系,TVGN_CARET返回当前选
10、择节点的句柄TVGN_CHILD,从而返回第一个子节点句柄。hItem为NULLTVGN_NEXT返回下一同级节点(同一树分支中的节点)句柄TVGN_PARENT指定节点的父节点句柄TVGN_PREVIOUS,为上一同级节点句柄TVGN_ROOT返回HItem父节点的第一个子节点句柄,其基本体如下所示:htreeitemittest (cpoint pt,uint * p flags);其中pFlags包含当前鼠标所在的位置标志,如以下常规定义所示:除了TVHT_ONITEM节点中TVHT_ONITEMBUTTON节点前面的按钮TVHT_ONITEMICON节点文本前面的图标上的TVHT_ON
11、ITEMLABEL节点文本、13.2.4树视图框架上方的操作外,还有一些常见操作,如表13.9所示。13.2.4树状检视框,3 .树视图控件中的消息类似于列表控件,树控件也可以使用MFCClassWizard映射公共控件消息和树控件消息。常用的树控制消息包括:展开或折叠具有TVN_ITEMEXPANDED子节点的父节点展开或折叠具有TVN_ITEMEXPANDING子节点的父节点TVN_SELCHANGED当前选择节点已更改TVN_SELCHANGING当前选择节点已更改,13.2.4树视图框架,和示例:浏览本地文件夹此示例遍历本地磁盘上的所有文件夹。要从本地系统中获取有效的驱动器,请使用Ge
12、tLogicalDrives(获取逻辑驱动器)和GetDriveType(获取驱动器)函数。13.3文档视图结构,13.3.1函数1。cview 3336363603360 GetDocument函数视图对象仅与一个文档对象相关联,GetDocument函数使您可以在视图中查看与应用程序相关联的文档。假设视图对象收到用户输入了新数据的消息,则视图必须通知文档对象相应地更新内部数据。GetDocument函数返回文档类的公共成员函数和指向可访问成员变量的文档的指针。生成CView的用户派生类的MFCAppWizard(exe)还创建安全类型的GetDocument函数,该函数返回指向用户派生文档
13、类的指针。此函数是内嵌函数,类似于以下代码表单:c mydoc * cmyview 3363603360 get document()/non-debugversionisnlineassert(m _ p文档-iskindof(/m_pDocument指针可以指向的CMyDoc类声明为RUNTIME_CLASS类型return(CMyDoc*)m_pDocument。13.3.1函数、2 . c document 33603360 updateallviews函数文档中的数据发生更改时,必须将所有视图通知给,以便可以相应地更新显示的数据。UpdateAllViews函数使用以下原型实现这些角
14、色:voidupdateallviews(cview * p sender,lparalent=0l,cobject * phnt=null);3.3.CView:OnUpdate函数这是虚拟函数。应用程序调用cdocument 33363603360 updateallviews函数时,应用程序框架相应地调用每个视图的OnUpdate函数。此函数的基本体是virtualvoidonupdate。cview * p sender、lparalhandle、cobject * phint)。13.3.1函数,4 .CView 33363603360 oninitiapdate函数应用程序启动或用
15、户从文件菜单中选择新建或打开时,将自动调用CView虚拟函数。除了调用自动参数(LH int=0,phnt=null)的OnUpdate函数外,此函数没有其他操作。5.cdocument 3363603360 onnew document函数文档应用程序中的用户从“文件”菜单中选择“新建”命令时,框架首先配置文档对象并调用虚拟函数。设置文档数据成员初始值的好地方。当然,还有其他初始化文档数据成员的方法。13.3.2拆分窗口,拆分窗口是“特殊”文档窗口,可以有多个窗口(pane)。分割可分为静态分割和动态分割两种类型。在MFC中,CSplitterWnd类封装拆分窗口期间所需的功能函数。其中,成
16、员函数CreateStatic使用bool create static(cwnd * pprent wnd,int nrss,int ncols,dworddwstyle=ws _ child | ws _如果使用CreateStatic创建,则必须调用csplitterwnd 3363603360 create view为静态窗口指定视图类对象,以创建每个窗口的视图类可能相同或不同的视图窗口。函数的基本体为:boolcreateview (intro、intrcol、cruntimitemeclass * pview class、sizeinit、ccreate context * p co
17、ntext);下面的示例将单个文档应用程序的文档窗口静态拆分为3x2个窗口:13.3.3文件多视图,以下示例使用拆分窗口为同一文档数据在一个多文档应用程序Ex_Rect中提供两种不同的显示和编辑方法,如图13.17所示。13.3.3文件多视图上方的程序代码中显示了文档视图的以下框架核心技术:(1)多个视图之间的数据传输通过cdocument 3363603360 updateallviews和CView:OnUpdate的交互实现,分为提示号(lHint)以避免传输中的相互干扰。例如,如果在文档类中调用UpdateAllViews函数,从CDrawView传递鼠标单击的坐标数据,则提示编号为1,从CEx_RectView类接收数据时由提示编号确定,如以下代码片段所示:voidcdrawview 3363603360 onlbuttondown(uint n flags,Cpoint point).get document()-updateallviews(null,1,(cobject *)/数据传输).void cex _ rectview 3363603360 on update(cview * p sender,lp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年马鞍山当涂经贸学校公开招聘教师8名笔试参考题库及答案详解
- 2026四川成都都江堰市人力资源和社会保障局招聘机关事业单位编外人员11人笔试备考题库及答案详解
- 2026年宁波市鄞州区区属国企招聘38人笔试参考题库及答案详解
- 2026四川成都都江堰市龙江路小学集团万达校区补员招聘合同制教师15人笔试参考题库及答案详解
- 2026中国医学科学院阜外医院体外循环中心招聘(北京)考试模拟试题及答案详解
- 2026年丽江地区工会人员招聘笔试参考试题及答案详解
- 2024年岳阳技师学院君山高职部高职单招职业技能考试题库附答案详解(研优卷)
- 2026内蒙古兴安盟直属机关(参公单位) 遴选公务员13人考试备考试题及答案详解
- 2024年四川达州通川职业学院高职单招职业技能考试题库带答案详解(精练)
- 2024年湖南省郴州市单招综合素质考试题库(研优卷)附答案详解
- 新生儿肺泡蛋白沉积症诊疗要点
- 公司内外网络管理制度
- 绿王八献妻协议书
- 2025年中小学音乐教师考试题及答案
- 山东胜华国宏新材料有限公司1万吨-年二甲基亚砜项目环评报告书
- T-BMCA 029-2024 军工涉密业务咨询服务单位安全保密体系建设规范
- DB32-T 4878-2024 居住区供配电设施建设标准
- 二型糖尿病人药物治疗
- 2025年注册安全工程师考试建筑施工(初级)安全生产实务试题与参考答案
- 临床科室危急值登记本
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
评论
0/150
提交评论