Salut, j'aimerai avoir votre avis là dessus.
Je débute avec les MFC, et j'ai pris le reflexe suivant :
je n'utilise jamais UpdateData();
à là place je crée dans le header de ma class XXXDlg.h un poiteur par type de controle présent dans ma boite de dialogue.
par exemple :
si je n'ai que des boutons dans ma boite de dialogue avec lequel je veuille interagir. alors je crée uniquement ceci :
puis quand je dois "parler à, ou écouter" un controle je passe systematiquement par ces pointeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CButton* m_ptBouton;
par exemple pour changer l'etat de 2 boutons :
Bon ok, je suis obligé de refaire pointer ptBouton des que je veux m'adresser à un autre controle, mais ca m'évite d'avoir 150000 pointeurs, et je pense que c'est toujours plus rapide qu'un UpdateData(), Parceque ce qui ne me plais pas avec UpdateData (mais peut etre que je me trompe) c'est l'idée qu'il mette à jours toutes les variables du document, et pas uniquement ce que l'on veut, donc que ca fait beaucoup de choses inutiles systematiquement, d'où mon idée de ne passer que par des pointeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ptBouton = static_cast <CButton*> (GetDlgItem(IDC_CHECK_RED)); ptBouton->SetCheck(0); ptBouton = static_cast <CButton*> (GetDlgItem(IDC_CHECK_GREEN)); ptBouton->SetCheck(0);
que pensez vous de cette idées?
il y a t'il des cas où en terme de performance, de rapidité, il vaut mieux utiliser UpdateData() ?
Merci pour vos précieux conseils.
Partager