Newsgroup: it.comp.lang.c++
Titolo: Stringhe in una Dialog.

Salve ,
come posso scrivere stringhe all'interno di una finestra di dialogo?
Nell''applicazione(MFC-VC++5.0) quando si apre la finesta di dialogo
dovrebbero
essere visualizzare un numero variabile di stringhe, quindi non posso legare
n variabili con n Edit box ...perchè non so quanto vale n!
Come posso fare?
Grazie
Emanuele(
ebru...@tin.it
)

...

In tanti modi, tipo, ad esempio, metterle in una listbox (che
potra` mostrarle "al massimo K" _alla volta_, ma puo` fare
scroll se N>K).  L'alternativa di generare al volo N controlli
separati, pur non difficile, non mi pare valida, perche`, se
non hai idea a priori di quanto valga N, come fai a definire
quanto spazio (area video) mantenere per i controlli...?  E
quindi tutto il layout del dialogo parrebbe insolubile.
Se conosci il _massimo_ valore di N, un'altra possibilita` e`
fare un layout con maxN controlli, poi, all'OnInitDialog,
rendere non visibili gli ultimi maxN-N di essi -- ma mi pare
che anche questa (che alla fine non e` molto diverso dal
creare dinamicamente i controlli, solo, forse, un poco piu`
comodo) non possa garantire un look decente, e che una
listbox resti un'idea migliore.
Comunque, non sono un esperto di ergonomia delle GUI,
ma, al massimo, di come usare e strutturare il codice per
ottenere effetti specificati; quindi, se puoi precisare meglio
cosa hai in mente in termini di effetto visibile all'utente,
posso forse aiutarti in termini di come giungere ad avere
quell'effetto.
Alex

Alex
Ho provato la List Box e non va male.
L'unico neo resta la formattazione della stessa; infatti la List Box vorrei
usarla come una tabella con 3 colonne(Nome-Servizio-Data).
Per ora ottengo il risultato unendo Nome,Servizio e Data in una sola stringa
mettendo anche spazi per  allineare con le colonne...un po macchinoso, ma
non so fare di meglio :-(
Esiste una List Box con colonne, dove posso inserire la stringa indicando
Numero riga e Numero di colonna?
Ciao e Grazie.
Emanuele(
ebru...@tin.it
)

Numero riga e Numero di colonna?
Non e` una listbox ma una listview, uno dei "common control" che
furono introdotti con Win95; e` assai piu` complicata da usare, ma
offre anche enorme flessibilita`.
Alex

Io ho usato un controllo di tipo List Control. Mi sono complicato la vita
rispetto alla listview? Mi servivano due colonne, con la possibilità di
allineamento a sinistra su entrambi. Concatenando le due stringhe, non
riuscivo ad allineare in maniera precisa la "seconda colonna". Consultando
l'help ho trovato che il List Control mi permetteva di far questo. Ho
lasciato vuota la Image List, perchè non mi serviva. L'applicazione era una
MFC AppWizard - Dialog Based Application.
--
N.B. rimuovere KKK per rispondermi
Alex Martelli ha scritto nel messaggio ...


rispetto alla listview? Mi servivano due colonne, con la possibilità di
C'e` un problema terminologico... il common control si chiama
"List View Control" (vedi documentazione dell'SDK); ma MFC usa
"view" in un senso ben preciso (quello del paradigma document/
view) e quindi invece del nome "vero" ne usa uno "suo" per il
"listview" (che rischia a questo punto di confondersi con un "list
box control"...), mentre chiama "ListView" una implementazione
(sempre basata su controllo listview) di una classe-vista per il
suo paradigma doc/view.
Insomma, hai usato proprio quel che io suggerivo di usare, solo
che Microsoft, come spesso succede (e non solo a lei!-) induce
una certa confusione sui nomi...:-).
Alex