Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > TreeView и WinAPI


Автор: NikSer 22.3.2011, 07:58
Не могу получить итемы из TreeView средствами WinAPI. Что не так делаю?

Создал окно Form123 cо списком дерева TreeView, в него добавил итемы. Запустил это приложение и средствами WinAPI хочу получить добавленный список дерева. Например пытался получить выделенную итему, результат нулевой:

Код

HWND hWnd = FindWindow(NULL,"Form123");
if (hWnd) 
        {
          hWnd = FindWindowEx(hWnd, NULL, "TTreeView", NULL);
          if (hWnd)
               {
                
                TV_ITEM TrItem;
                ZeroMemory(&TrItem, sizeof(TV_ITEM));
                HTREEITEM hTrItem=0;
                long reslt;

                hTrItem=(HTREEITEM)SendMessage(hWnd,TVM_GETNEXTITEM,TVGN_CARET,0);
                
                TrItem.hItem = hTrItem;
                TrItem.mask = TVIF_TEXT;
                TrItem.pszText=new char[50];
                TrItem.cchTextMax=50;

                reslt = SendMessage(hWnd,TVM_GETITEM,0,(LPARAM)&TrItem);
                
                if(reslt!=0)ShowMessage(PChar(TrItem.pszText));
                }
          }


В 13 строке хэндл итема вроде получаю правильно, проверял с помощью Spy Window, результаты совпадают.

Автор: BorisVorontsov 25.3.2011, 12:18
Добавь TVIF_HANDLE к маске

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)