遍历和查找外部程序 Tree-View 中的项目
2007-03-17 21:59:26 来源:WEB开发网核心提示:本文示例源代码或素材下载 《金山词霸2002》中的附录收集了很多古诗,有时为了寻找一篇古诗,遍历和查找外部程序 Tree-View 中的项目,得找很久很久(俺文科很差),观察其附录的结构,作用是将用户输入的十六进制TV句柄值转换成十进制并存放在变量dec_sum中,此代码不列入本文讨论的范畴,发现是个Tree-
本文示例源代码或素材下载
《金山词霸2002》中的附录收集了很多古诗,有时为了寻找一篇古诗,得找很久很久(俺文科很差)。观察其附录的结构,发现是个Tree-View控件,如果能查找里面的项目该有多好,可这个功能软件本身却并没有提供(不知道现在最新的版本是否已经提供了这个功能,如果没有,赶快加上吧,顺便奖励俺一套该产品的最新版,哈哈)……问题出来了:我们要编写一个程序,让她在外部程序中的Tree-View控件里,按用户指定的项目名称顺序查找其中的项目。
要查找首先得遍历,连范围都确定不好何谈查找?所以本篇分两部分进行讲解:第一部分解决遍历的问题;第二部分解决查找指定项目的问题。
第一部分:遍历外部程序Tree-View中的项目
一:程序说明:
如图一所示Tree-View控件的典型结构图,我们将按照图示的顺序来遍历其中的项目。
图一
翻阅SDK手册中关于Tree-View控件的相关章节,发现了几个有用的消息:
TVM_GETNEXTITEM:得到项目的句柄(参数:TVGN_ROOT得到根句柄,TVGN_NEXTVISIBLE得到下一个可见项目的句柄);
TVM_EXPAND:展开或折叠指定项目(参数:TVE_EXPAND展开指定项目);
TVM_SELECTITEM:选中指定项目。
利用这些消息和SendMessage()函数,我们可以很容易写出遍历代码。
二:具体实践
在本文所提供的DEMO中,有一段将十六进制字符串转换成十进制无符号长整型的代码,作用是将用户输入的十六进制TV句柄值转换成十进制并存放在变量dec_sum中。此代码不列入本文讨论的范畴,大家不闲弱智的话就将就着用吧。下面是实现遍历功能的关键代码:
更多精彩
赞助商链接