Newsgroup: it.comp.programmare.win32
Titolo: [forse OT]Creare controlli in maniera dinamica...

2 idee, per l'esattezza. La prima è quella di creare prima i controlli,
renderli invisibili e al momento della necessità, farli vedere.
La seconda idea è che secondo il modello API quando tu hai poi l'ID del
controllo, puoi gestire gli eventi come il BN_CLICKED su esso anche se l'id
all'inizio non esiste o non è istanziato.

Ciao, ho un 'piccolo' problema.
Ho un sw che a runtime crea in una dialog alcuni controlli (in particolare
CEdit).
Quello che non riesco a fare è intercettare gli eventi che sono generati
quando interagisco con questi controlli.
Per intenderci pensate ad una CEdit in cui vorrei fare in modo di
controllare il testo inserito dall'utente mentre lo stesso testo viene
inserito.
Ho provato ad usare il WM_PARENTNOTIFY per deviare i messaggi alla dialog
che li contiene, ma purtroppo solo alcuni messaggi particolari vengono
inviati (creazione o click col mouse), mentre degli altri non ho idea di che
fine possano fare.
Avete qualche idea?
_____________________________
"Yuk yuk!" (Pippo)

 ha scritto nel messaggio
news:98tkcl$641$1...@pluto.sm.dsi.unimi.it...

Scusa per il ritardo nella risposta. Grazie per le idee, ma  prima l'avevo
dovuta scartare perchè non compatibile con le specifiche (non so quali e
quanti controlli creare, lo scopro urante il funzionamento del sw);
la seconda invece mi 'stuzzica'. Per ora ho risolto con un trucchetto; cioè
creo i controlli in maniera dinamica con le opportune proprietà ed ID e poi
li gestisco successivamente.
Purtroppo non sono riuscito a gestire i messaggi!
Tu dici che è possibile gestire gli eventi anche prima della creazione
dell'ID? come si fa?
basta fare finta che esista? (non credo!)
Il 'classico' classWizard associa agli ID esistenti variabili ed agli eventi
associati delle funzioni. Ma se non ho ID come si fa?
E' possibile creare gli ID solo con le #define e successivamente creare dei
controlli con quegli ID?
Insomma: dove mi posso documentare?
Grazie,
Ciao,
C.

Trucco banale, molto banale direi è quello di scrivere il programma con le
API oppure utilizza la WindowProcedure sovrascrivendo a quella standard.
Comunque, il ClassWizard non fa altro che aggiungere queste righe :
    nella classe:
 // Generated message map functions
 //{{AFX_MSG(CDriveTestDlg)
 virtual void OnOK();
 //}}AFX_MSG
 DECLARE_MESSAGE_MAP()
E quindi è possibile trovando le righe corrette aggiungerne altre riferite
agli ID

scusate se mi intrometto ma sono interessato alla cosa.
Silvano, non ho capito la tua risposta.
Supponiamo che io voglia realizzare una sorta di form designer, devo poter
inserire dei controlli a run time, quali CEdit, CButton, CListBox... e devo
poter associare a questi controlli le routine per la gestione degli eventi.
Se ad esempio creo un nuovo bottone, come faccio a far apparire un
MessageBox quando questo viene premuto?
Mi e' chiaro che se scrivo la WindowProc come voglio io, posso gestire ogni
singolo messaggio ed il gioco e' fatto, ma esistono altri metodi? Cos'e'
questa storia degli ID? I controlli creati a runtime devono avere un proprio
ID univoco a livello di Owner?
Grazie, ciao e buon lavoro, Davide.
-- 
Posted from 
origin.vit.iit.nrc.ca
 [132.246.41.10] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG