erikltt
Messages postés32Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention24 octobre 2019
-
27 nov. 2004 à 16:28
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDerniè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+
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 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
erikltt
Messages postés32Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention24 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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 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);
erikltt
Messages postés32Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention24 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+
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 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é.