View Full Version : [VC++] COme fo a far comparire un array di nomi in un edit b
-=Krynn=-
08-09-2002, 11:02
Ok, la cosa è semplicissima se uno sa usare bene l'interfaccia del visual c++6, ma visto che io non la so usare non so da che parte cominciare. Premetto inoltre che il codice per creare quello che sto facendo lo so fare, è l'interfaccia del vc++6 il mio problema:mad:
Spiego il mio problema:
Io ho un array che contiene degli eventi, insomma, in generale ho un array di stringhe di testo.
Quando l'utente preme un pulsante il programma associa ad ogni "evento" dell'array una probabilità espressa in percentuale, io voglio che l'utente veda apparire tutti gli eventi con accanto la relativa percentuale.
Io pensavo di fare due edit box, unoper gli eventi ed uno affiancato per le probabilità, e passare agli edit box i due array...solo che non funziona.
L'edit box mi visualizza solo il primo elemento....
La soluzione estrema è creare un edit box per ciascun evento..ma così dovrei creare un botto di codice in +, tutto è molto + compatto usando gli array....
Qualcuno sa aiutarmi?
Ti va bene questo esempio ?
Fammi pure tutte le domande che vuoi...
-=Krynn=-
09-09-2002, 10:20
Non capisco una cosa..le funzioni "addColumn" e "AddItem" le hai create te o sono standard della MFC?
comunque non pensavo fosse così "complicato" creare questa cosa in VC++....
Fammmi capire, in pratica te crei due colonne (in questo caso) vuote, una chiamata eventi ed una probabilità con la funzione MFC "AddColumn".
Una volta fatto questo copi il vettore (in questo caso v1 e v2) nelle due colonne che avevi creato tramite "AddItem".
Ho solo due domande allora:
1) se le due funzioni sono nella MFC come mai hai scritto tutto il corpo della funzione?
oppure l'hai messo per farlo vedere a me?
2)
BOOL AddItem(CListCtrl &lc, int nItem,int nSubItem,LPCTSTR strItem,int nImageIndex = -1)
{
LVITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = nItem;
lvItem.iSubItem = nSubItem;
lvItem.pszText = (LPTSTR) strItem;
if(nImageIndex != -1){
lvItem.mask |= LVIF_IMAGE;
lvItem.iImage |= LVIF_IMAGE;
}
if(nSubItem == 0)
return lc.InsertItem(&lvItem);
return lc.SetItem(&lvItem);
}
qua non mi pare che gli dici però DOVE inserire i due vettori?
e allora come funziona?
che il primo vettore v1 se ne va negli eventi perchè la prima colonna libera è quella, e quindi v2 è "costretto" ad andare tra le probabilità?
Queste funzioni non sono standard MFC...le funzioni standard MFC sono InsertItem e InsertColumn...
Quelle funzioni l'ho trovate in un esempio del MSDN Library...
facilitano molto l'inserimento di una colonna e di un elemento in una colonna...
Guarda il valore che passo per nSubItem nel for...per il vettore 1 passo il valore 0 (che il valore di nItem passato per la creazione della colonna Eventi)...mentre per v2 passo il valore 1 (che è l'indice della colonna Probabilità)...
Ogni colonna deve avere un nItem univoco...passando quel valore a nSubItem si mettono i valori sotto quella colonna...
-=Krynn=-
09-09-2002, 13:05
Originariamente inviato da cionci
[B]Queste funzioni non sono standard MFC...le funzioni standard MFC sono InsertItem e InsertColumn...
Guarda il valore che passo per nSubItem nel for...per il vettore 1 passo il valore 0 (che il valore di nItem passato per la creazione della colonna Eventi)...mentre per v2 passo il valore 1 (che è l'indice della colonna Probabilità)...
Ogni colonna deve avere un nItem univoco...passando quel valore a nSubItem si mettono i valori sotto quella colonna...
che differenza c'è tra le funzioni standard e quelle che hai messo te?
Vero, non avevo visto che cambiava il valore da zero a uno..per il resto il mio ragionamento sul funzionamento del tuo codice è esatto?
Originariamente inviato da -=Krynn=-
[B]che differenza c'è tra le funzioni standard e quelle che hai messo te?
Le funzioni standard MFC vengono richiamate all'interno di AddColumn (InserColumn) e AddItem (InsertItem)...semplicemente le due funzioni che ti ho messo rendono tutto più semplice (come ad esempio il dimensionamento automatico delle colonne o i parametri di default per il membro mask delle strutture)...
Per il resto il tuo ragionamento è corretto...
-=Krynn=-
10-09-2002, 19:24
Originariamente inviato da cionci
[B]
Le funzioni standard MFC vengono richiamate all'interno di AddColumn (InserColumn) e AddItem (InsertItem)...semplicemente le due funzioni che ti ho messo rendono tutto più semplice (come ad esempio il dimensionamento automatico delle colonne o i parametri di default per il membro mask delle strutture)...
Per il resto il tuo ragionamento è corretto...
ok, grazie tante...
ora ti rompo un'ultima volta..
sai percaso dove posso trovare un buon libro che spieghi l'MFC, oppure l'interfaccia del visual C++ (per il c++ a livello di codice non ho problemi)
Al limite un link...
questo erchè mi sto accorgendo che è totalmente diverso che programmare in modo non visuale, la roba di codice che hai inserito te non mi sarebbe mai venuta in mente di richiamarla anche perchè non ne conoscevo nemmeno l'esistenza;)
Originariamente inviato da -=Krynn=-
[B]ok, grazie tante...
ora ti rompo un'ultima volta..
sai percaso dove posso trovare un buon libro che spieghi l'MFC, oppure l'interfaccia del visual C++ (per il c++ a livello di codice non ho problemi)
Al limite un link...
questo erchè mi sto accorgendo che è totalmente diverso che programmare in modo non visuale, la roba di codice che hai inserito te non mi sarebbe mai venuta in mente di richiamarla anche perchè non ne conoscevo nemmeno l'esistenza;)
Sinceramente nemmeno io sapevo queste cose ;) Ho cercato su MSDN !!!
Se vuoi un libro elettronico ben fatto su MFC : http://www.devpride.com/Linguaggi/C++/Tutorial/MFC_Book.zip
Purtroppo insegna solamente le basi...ma intanto non è male...
-=Krynn=-
11-09-2002, 11:12
scrib scirb..
ok, grazie tante
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.