Newsgroup: it.comp.programmare.win32
Titolo: Disabilitare più controlli tutti insieme, stavolta con MFC

Ricordate di quando chiedevo come disabilitare più controlli tutti in un colpo
solo e mi avete detto che non si può fare ma che bisogna farlo per ogni
controllo a mano? Bene, vale lo stesso anche per l'MFC?
Dovrei creare, con il ClassWizard, degli oggetti reference ai TUTTI i
controlli della finestra da disabilitare e poi disabilitarne uno per uno?
Inoltre ho un problema: non capisco come mai, sempre con il ClassWizard,
quando creo un controllo membro di una classe derivata di CDialog che viene
mappato su un controllo CStatic, questo controllo non possa essere anch'esso
un CStatic ma è per forza un CButton.
--
Stefano Pettini
Risposte solo sul newsgroup, please.

 un CStatic ma è per forza un CButton.
Scusa ma questa non l'ho proprio capita.  Hai un dialogo, che contiene
esattamente cosa?  Che ci fai esattamente col class wizard...?
Alex

un CStatic ma è per forza un CButton.
Qui non ti posso aiutare, non sono pratico di MFC.
Bye.

 esattamente cosa?  Che ci fai esattamente col class wizard...?
Ho un dialog che contiene uno static control. Come a ogni control, io posso,
con il Class Wizard associargli una variabile o un oggetto (CEdit per gli edit
box, ecc...) che sia un reference a quel control. Tornando al mio static
control, non capisco perché il Class Wizard non vuole associargli, tramite
reference, un oggetto di classe CStatic, ma per forza uno di classe CButton.
CHE CASINO!
Sai dirmi qualcosa sul Borland C++, come gestisce l'interfaccia utente?


Sai dirmi qualcosa sul Borland C++, come gestisce l'interfaccia utente?
Il Borland C++ non ha quasi nulla per velocizzare la costruzione e
manutenzione dell'interfaccia utente. Pero' qualcosina l'accoppiata
AppExpert-ClassExpert la esegue, tipo creare controlli e
referenziarli. Oltre questo e' meglio passare al Builder.....
Bye.

 reference, un oggetto di classe CStatic, ma per forza uno di classe
CButton.
Scommettiamo che la ragione e` che, a differenza di quanto tu dici,
il tuo dialog NON contiene un controllo di classe STATIC, bensi` uno
di classe BUTTON?
Non ci credi?  Fai partire il tuo dialogo ed esaminalo con Spy++, che
ti permette di vedere, fra l'altro, le window-class di tutte le finestre
di un dato sotto-albero.
Molti sono stupiti che una "group box" sia un BUTTON, pensando
invece che sia uno STATIC.  Naturalmente, chi ha studiato il mio tutorial
di programmazione API Win32, su 
http://aleax.supereva.it/
, queste
cose invece le sa:-).
Alex

 Apparte che le classi sono TStatic, TEdit, ecc...,
Da te. Da me, con il compilatore Microsoft e MFC, sono CStatic e CEdit.
Lasciamo stare...


 cose invece le sa:-).
Darò un'occhiata. :-)


 per ognuno di essi.
Tempo fa ho spedito un messaggio in cui spiegavo come automatizzare questa
cosa. Basta circondare i controlli che vuoi dis/abilitare con uno static
rectangle (SS_BLACKFRAME) invisibile, poi leggi la sua posizione, scorri tutti
i controlli e guardi quelli che ci stanno dentro.
--
Bye! Lorenzo Lutti (
http://www.geocities.com/SiliconValley/Peaks/6258/
)

 in realtà gli "static control" in windows sono dei button disabilitati.
Assolutamente no, dove hai letto questa sciocchezza?
STATIC e BUTTON sono due delle window class predefinite (in
USER32.DLL, o almeno cosi` appare "da fuori"), per due classi
(in senso Windows, non in senso C++, o MFC, o Marxista:-) di
controlli.
La classe STATIC gestisce scritte statiche, rettangoli (senza
scritta; possono essere "riempiti" ovvero solo "outlined"),
display (normalmente static) di icone o bitmap...; possono
anche essere "owner-drawn" (vedi WM_DRAWITEM, ecc).
La classe BUTTON gestisce pushbutton, checkbox, radio button,
rettangoli solo outlined ma con una scritta (vedi il bit di stile
BS_GROUPBOX)...; possono anche essere "owner-drawn"
(vedi WM_DRAWITEM, ecc).
Il CStatic di MFC mappa esattamente le finestre con classe
Windows STATIC.
Il CButton di MFC mappa esattamente le finestre con classe
Windows BUTTON.
Alex