|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 2
|
[C++] Prendere del testo da un controllo SysListView32
Salve a tutti,
Sto facendo un'app in DevC++ per prendere una lista di ip da un programma di VPN. Questo mi servirà in seguito per fare un giochino multiplayer, che avendo già gli ip dei giocatori potrà effettuare da solo le connessioni senza dover fare il solito scambio di ip. Finora sono riuscito a prendere l'handle della finestra principale del programma con FindWindow(). Poi con FindWindowEx() ho preso l'handle del controllo che tiene la lista degli ip. Il controllo che contiene gli ip è un SysListView32. Sono sicuro che l'handle del controllo è corretto, perchè se mando un messaggio TVM_GETCOUNT con SendMessage() mi torna il numero esatto di items. Il punto è che a me serve il testo degli items stessi. Per prendere il testo bisogna mandare un messaggio TVM_GETITEM, che come parametro in/out ha una struct TVITEM che deve contenere l'handle dell'item di cui si vogliono ottenere gli attributi. Dopo aver inviato il messaggio, la struct conterrà i dati dell'item. Io l'handle degli item non ce l'ho, ho solo l'handle del controllo. So che esiste il messaggio TVM_GETNEXTITEM, che però ha bisogno anch'esso come parametro di un handle ad un item ( per trovare il successivo, quello selezionato o altri ). Come faccio a trovare l'handle del primo item? ![]() Grazie in anticipo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
TVITEM è una struttura che ti serve per le treeview (TV = TreeView), la struttura che cerchi è LVITEM, il messaggio da inviare è LVM_GETITEM.
L'unica cosa che devi settare è iItem: Codice:
TCHAR text[255]; LVITEM li = {0}; li.mask = LVIF_TEXT; //devi ricavare il testo li.iItem = [numero dell'elemento]; li.pszText = text; li.cchTextMax = 255; SendMessage(listView, LVM_GETITEM, 0, (LPARAM)&li) |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 2
|
Scusa ho sbagliato a scrivere il controllo è un SysTreeView32. Nella struttura TVITEM non va messo un int che indica quale item prendere, ma un handle di tipo hItem. Era quello il mio problema, TVM_GETITEM prende gli attributi di un item, ma di quale item glielo devo dire io passando l'handle hItem, che non so come procurarmi
![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:23.