Newsgroup: it.comp.lang.c++
Titolo: problemino di base

Ciao a tutti, č la prima volta che uso un ns spero di non rompere.
Sono un neofita del Visual C++ 5.0, ho qualche base di C++, vorrei creare
una prima applicazione a titolo didattico utilizzando AppWizard, creo una
applicazione di basa basata su finestre di dialogo (la cosa piů semplice),
domanda: Dove devo scrivere il cuore del mio codice?
Di logica direi dentro alla classe ****App, che io avevo capito che era la
classe di base, ma dove scrivo, cosa devo creare?
Grazie a tutti.
O paura che mi farň sentire diverse volte ma non per aiutare, non ne sarei
in grado.

classe di base, ma dove scrivo, cosa devo creare?
Dato che hai scelto di basarti su di una finestra di dialogo, e`
piu` normale scrivere "il cuore del tuo codice" nella classe
associata alla finestra di dialogo -- tutto sommato, questo
significa "basarsi", no?  Per applicazioni dialog-based, la
classe applicazione si riduce praticamente al suo metodo
InitInstance, cioe` l'inizializzazione, il quale a sua volta non
fa praticamente altro che generare il dialogo stesso e
dire al sistema "tutto finito!" quando il dialogo si chiude.
Tu dovrai mettere le mani sull'InitInstance della tua classe
applicazione solo se devi aggiungere o modificare una
qualche parte dell'inizializzazione, o della terminazione,
rispetto a quelle standard (ad esempio, reperire delle info
supplementari nella registry, e magari aggiornare la registry
stessa subito prima di uscire).
La tua classe-dialogo si basa su di una risorsa-dialogo,
che normalmente modificherai con il resource editor del
Visual Studio, per aggiungere controlli, posizionarli, darne
le proprieta` basilari (compresa quella importantissima
dell'_identificatore_ di ciascun controllo, eccetera); puoi
inoltre usare il class wizard per associare metodi della
classe dialogo ai vari messaggi che possono arrivare al
dialogo stesso e ai suoi controlli, o per creare esplicite
variabili-membro della tua classe dialogo che corrispondono
ad alcuni dei tuoi controlli sui quali desideri fare cose
particolari.
Il primo punto d'intervento normale e frequente e` dunque
la funzione membro OnInitDialog della tua classe dialogo,
dove puoi fare operazioni di inizializzazione del dialogo
stesso o dei suoi controlli; e poi ci saranno le varie funzioni
membro che hai chiesto di fare chiamare in risposta ai vari
eventi, come ad esempio il "click" dell'utente su di un tuo
pushbutton -- un paio di queste te le trovi gia` fatte dal
Wizard, la OnOK che risponde al click su OK (e al return
dato dovunque nel dialogo, visto che OK e` il bottone di
default) e la OnCancel che risponde al click su Cancel (e
all'ESC, e al click sulla crocetta in alto a destra) -- entrambe
dovranno normalmente "chiudere tutto", rispettivamente
"agendo" (se l'utente ha dato OK) o "lasciando perdere"
(se l'utente ha dato Cancel).  Ci sono gia` dunque posti
molto "naturali" per le operazioni di inizializzazione e di
terminazione.  Dove mettere (in quali funzioni membro della
tua classe dialogo) altre cose, dipende naturalmente da
cosa queste "altre cose" siano; ad esempio, un calcolo
che deve avvenire in risposta al click su di un pushbutton
che tu abbia aggiunto e denominato "Lavora" (e identificato
nelle proprieta` come IDC_LAVORA) andra` normalmente
in un'apposita funzione membro, creata su tua richiesta dal
class wizard, e denominata "OnLavora".
E` normalmente meglio, in Windows (e in particolare nelle
applicazioni MFC), ragionare "ad eventi", cioe` suddividere
tutte le operazioni del tuo programma in "risposte" a vari
"eventi" (molti dei quali saranno provocati dall'utente).  Non
e` forse il modo piu` naturale di pensare per chi e` abituato
a scrivere applicazioni "tradizionali", ma tende ad essere la
migliore impostazione per tutti i programmi GUI (Windows,
ma anche Motif, Mac, ...).
Alex

in grado.
Dai, non ti buttare cosi' giu', guarda che in questo newsgroup scrivono c...
e p....
-----
Ciao, Angelo.