Proproétés d'une CEdit

erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019 - 27 nov. 2004 à 16:28
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 30 nov. 2004 à 11:42
Salut à tous, je débute dans les MFC et je suis confronté à un bête problème : comment attendre les propriétés d'une CEdit (ou de tout autre contrôle)?
Je voudrais en en fait rendre une CEdit active/inactive ou visible/invisible, à la manière dont on procède en VB, c'est à dire
NomDuContrôle.Visible=false, mais j'ai remarqué que ce n'était pas aussi simple :)
Merci
a+

7 réponses

erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019
27 nov. 2004 à 16:29
Petite erreur de frappe, ce n'est pas 'attendre les propriétés...' mais 'atteindre' :)
0
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
28 nov. 2004 à 09:07
tu es sous vc6 ou vc.net?
cherche ce titre ds MSDN 'Hierarchy Chart', tu y trouvera toutes les classes MFC et leurs differentes methodes et proprietés
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 nov. 2004 à 15:59
Si tu l'as crée avec Create ou CreateWindow(Ex), il faut que tu utilises la fonction pEdit->Enable(FALSE) par exemple pour désactiver le CEdit, ou pEdit->ShowWindow(SW_HIDE) pour le cacher. Si c'est dans une ressource, il y a un menu pour les propriétés:
Affichage>Fenêtre propriétés
0
erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019
28 nov. 2004 à 18:38
Je l'ai justement créée dans une ressource, mais il n'est pas possible de passer par le code pour modifier les propriétés de Affichage>Fenêtre propriétés?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 nov. 2004 à 19:28
Bien sur que si. Tu récupere le controle avec getDlgItem(IDDUCONTROLE). Ca donne un CWnd*, donc fais un cast pour avoir un truc de la classe souhaitée (tu la connais normalement).
Par exemple: CEdit* pEdit = (CEdit*)GetDlgitem(IDC_EDIT1);
0
erikltt Messages postés 32 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 24 octobre 2019
29 nov. 2004 à 19:32
Ok, je vois le principe, maitenant il y a 2 prototype à cette fonction, je suppose donc qu'il faut que je prenne la 2e
( void CWnd::GetDlgItem( int nID, HWND* phWnd ) const; )
Maintenant, c'est le 2e paramètre qui me pose problème, comment récupérer un HWND sur ma boîte de dialogue?
Tout ca, ce sont des questions de base, mais la MSDN ne m'aide pas beaucoup :/
Merci
a+
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
30 nov. 2004 à 11:42
Dans le classwizzard, tu peux également associer le contrôle EDIT à une variable du type CEdit (onglet member variable du classwizzard, add member, séelcrion Contrôle et CEdit, donner un nom au Cedit m_edt par ex.

void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;
=> permet de récupérer directement le handle du contrôle EDIT on passant un pointeur sur HWND qui sera rempli.

"comment récupérer un HWND sur ma boîte de dialogue?"
=> le membre m_hWnd de toute classe dérivée de CWnd donne accès au handle encapsulé.
0
Rejoignez-nous