WEB开发网
开发学院软件开发VC 控件“树”中多选拖放功能的实现 阅读

控件“树”中多选拖放功能的实现

 2007-03-30 21:32:29 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 控件”树”(tree)能够清晰地显示所包含数据的继承关系,是一个强有力的控件,控件“树”中多选拖放功能的实现,但是真正掌握并能运用CTreeCtrl类的众多特性并不是一件容易的事情,在Visual C++ Developer杂志的9月份、10月份这两期中,通过一

本文示例源代码或素材下载

控件”树”(tree)能够清晰地显示所包含数据的继承关系,是一个强有力的控件。但是真正掌握并能运用CTreeCtrl类的众多特性并不是一件容易的事情。在Visual C++ Developer杂志的9月份、10月份这两期中,Stephen介绍了两个类CBitmapTree和CCheckableTree的用法,这两个类可以扩展和简化类CTreeCtrl。在这篇文章里,将主要介绍类CBitmapTree的升级版,它可以简化往”树”控件中添加拖放功能的过程,而且还可以实现多选拖放功能。

在CTreeCtrl类中,拖放特性是很难掌握和应用的特性之一。由于该特性能给拖放操作带来许多特有的灵活性,所以MFC组专门指派程序员负责这方面函数的编写工作,这将使得用户在开发的应用程序中实现控件”树”的拖放功能不再"望而生畏"。这里将介绍类CBitmapTree中扩充的有关成员函数,以便简化控件”树”的拖放功能的实现,同时还将该特性扩展到多选拖放。

本文所做的介绍是假定您已经对9、10月份Visual C++ Developer杂志中有关文章里面的概念和技术有所了解。这两篇文章的题目是 A Tree Control with Multiple Selection and Simpler Image Handling〖1〗和A Tree Control with Three-State Check Boxes and Sophisticated Sorting〖2〗。另外,升级的类CCheckableTree [CHECK.ZIP]文件可以从网址:www.pinpub.com/vcd/下的Subscriber Downloads部分中下载得到。

可拖动的项和释放的目标位置(Draggable items and drop targets)

拖放操作主要包含两个行为对象:被拖动的项和释放的目标位置项。为了支持可反复进行的拖放操作功能,需要能够识别出树控件类中哪些项是可拖动的以及它们的释放位置如何,而不是去识别父窗口类中的项。通过一个成员变量m_draggable中某一特定位值的设置可以设置某项的拖动特性,就象一个树的图象可以设置成"可扩充"特性一样。函数SetDraggable()、IsDraggable()、SetDropTarget()和IsDropTarget()中就使用了该成员变量m_draggable。下面是函数SetDraggable()的代码:

1 2 3 4 5  下一页

Tags:控件 功能 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接