WEB开发网
开发学院软件开发VC 遍历和查找外部程序Tree-View中的项目 阅读

遍历和查找外部程序Tree-View中的项目

 2007-10-04 20:11:12 来源:WEB开发网   
核心提示:二:具体实践在本文所提供的DEMO中,有一段将十六进制字符串转换成十进制无符号长整型的代码,遍历和查找外部程序Tree-View中的项目(2),作用是将用户输入的十六进制TV句柄值转换成十进制并存放在变量dec_sum中,此代码不列入本文讨论的范畴,大家不闲弱智的话就将就着用吧,下面是实现遍历功能的关键代码:/*Tre

二:具体实践

在本文所提供的DEMO中,有一段将十六进制字符串转换成十进制无符号长整型的代码,作用是将用户输入的十六进制TV句柄值转换成十进制并存放在变量dec_sum中。此代码不列入本文讨论的范畴,大家不闲弱智的话就将就着用吧。下面是实现遍历功能的关键代码:

  /*  Tree-View Control_Demo_SeqShow 1.0 版
   *  版权所有 (C) 2006 天津 赵春生
   *  2006.08.28
   *  http://timw.yeah.net
   *  http://timw.126.com
   *  本程序能顺序遍历TV控件中的所有项目。
   *  代码在Win2000P+SP4 + VC6+SP6测试通过。
   */
   if(error==0)//如果在数据验证转换的过程中未出现错误(error==0时无错误)
   {
    
     //下面为核心部分:顺序显示(选中)指定Tree-View控件中的所有Item.
    
     hwnd=HWND(dec_sum);//得到转换后的数据
    
     //得到根句柄
     tvitem.hItem=(HTREEITEM)::SendMessage(hwnd, TVM_GETNEXTITEM,TVGN_ROOT, 0x0);
     ::SendMessage(hwnd, TVM_SELECTITEM,TVGN_CARET, (long)tvitem.hItem);//选中状态
    
     while((long)tvitem.hItem)
     {
       //当此项目能展开时
       while(::SendMessage(hwnd, TVM_EXPAND,TVE_EXPAND, (long)tvitem.hItem))
       {
         //选择下一个可见项目
         tvitem.hItem=(HTREEITEM)::SendMessage(hwnd,
             TVM_GETNEXTITEM,TVGN_NEXTVISIBLE,
             (long)tvitem.hItem);
         //选中状态
         ::SendMessage(hwnd, TVM_SELECTITEM,TVGN_CARET, (long)tvitem.hItem);
         continue;
       }
      
       //当不能再展开的时候,选择下一个可见项目
       tvitem.hItem=(HTREEITEM)::SendMessage(hwnd,
           TVM_GETNEXTITEM,TVGN_NEXTVISIBLE,
           (long)tvitem.hItem);
       //选中状态
       ::SendMessage(hwnd, TVM_SELECTITEM,TVGN_CARET,
             (long)tvitem.hItem);
      
     }
   }
  
   //释放内存
   CloseHandle(hwnd);
   //顺序显示(选中)完毕
三:TV_Demo_SeqShow的使用方法(图2):

图二

上一页  1 2 3 4  下一页

Tags:遍历 查找 外部

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