На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Ребят кто нить работал с VirtualTreeView
    Ребят кто нить работал с VirtualTreeView? Может кто нить подсказать по работе с ним, нигде не нашел как работать с ним через Builder а на Delphi у них слишком сложные примеры.
      desivers
      см. здесь
        Всем привет, помогите разобраться с чтением данных чужого VirtualTreeView. Перебор элементов организовал с помощью цикла (другое типа TVM_GETCOUNT не работает, или я не то делаю). Код следующий:
        ExpandedWrap disabled
          HWND h3, h4;
          ...
          h4 = FindWindowEx(h3, NULL, "TAdvVirtualTreeView", NULL);
           
          HTREEITEM Root = (HTREEITEM)::SendMessage(h4, TVM_GETNEXTITEM, TVGN_FIRSTVISIBLE, 0);
          while (Root)
          {
             TV_ITEM tvi;
             tvi.hItem = HTREEITEM(Root);
             tvi.mask = TVIF_HANDLE + TVIF_TEXT;
             SendMessage(h4,TVM_GETITEM,0,(LPARAM)&tvi)
             //
             Root = (HTREEITEM)::SendMessage(h4, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (LPARAM)Root);
          }

        а как достучаться к данным Item[]? TVM_GETITEM на выходе пустой. Пробовал посмотреть события через Spy++, приходят типа WM_USER+47361 и т.д. Спасибо.
          Ну если текст просите, то надо же в структуре указать, куда текст складывать (адрес строки-pszText) да и размер строки тоже надобно сообщить(cchTextMax).
            Да, но я так думаю, что там и структура другая, не TV_ITEM. Я это делал
            ExpandedWrap disabled
              TVITEM tvItem;
              tvItem.mask = TVIF_TEXT;
              tvItem.hItem = Root;
              tvItem.pszText = (char*)remoteBuffer + sizeof(TVITEM);
              tvItem.cchTextMax = 255;

            Пробовал подпихнуть и TVirtualNode
            ExpandedWrap disabled
              struct TVirtualNode
              {
              private:
                  struct _TVirtualNode__1
                  {
               
                  };
              public:
                  unsigned Index;
                  unsigned ChildCount;
                  System::Word NodeHeight;
                  TVirtualNodeStates States;
                  System::Byte Align;
                  TCheckState CheckState;
                  TCheckType CheckType;
                  System::Byte Dummy;
                  unsigned TotalCount;
                  unsigned TotalHeight;
                  TVirtualNode *Parent;
                  TVirtualNode *PrevSibling;
                  TVirtualNode *NextSibling;
                  TVirtualNode *FirstChild;
                  TVirtualNode *LastChild;
                  _TVirtualNode__1 Data;
              };

            также без результата (пусто).
              Работал, но мне не понравилось. Слишком все все сложно в этой проге, есть проще.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0919 ]   [ 18 queries used ]   [ Generated: 21.08.18, 07:51 GMT ]