begin process at 2010 02 10 03:23:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Communication dynamique entre contrôles et fenêtre parent


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Communication dynamique entre contrôles et fenêtre parent

mercredi 15 avril 2009 à 19:03:35 | Communication dynamique entre contrôles et fenêtre parent

rachid1245

Voilà
j'ai une fenêtre qui contient 6 contrôles
le 6ème contrôle contient un résultat qui dépend des valeurs des cinq autres contrôles
je voudrais qu'au moindre changement sur l'un des cinq contrôles, le résultat dans le sixième contrôle est mis à jour de façon dynamique et automatique sans avoir à déclencher cette mis àjour.
en termes plus technique comment procéder pour la fenêtre parent soit informée du moindre changement sur ces contrôles.

Merçi d'avance

mercredi 15 avril 2009 à 20:18:40 | Re : Communication dynamique entre contrôles et fenêtre parent

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
La fenetre parent est informée de tout ce qui se passe dans les controles 'child' par les messages systeme.
Suffit de les traiter.
Valeur change dans un EDIT -> parent reçoit un EN_CHANGE.

Voir les messages de notification de chaque controle dans MSDN.

ciao...
BruNews, MVP VC++
jeudi 16 avril 2009 à 12:39:33 | Re : Communication dynamique entre contrôles et fenêtre parent

rachid1245

Merçi beaucoup effectivement
c'est simple.
vendredi 17 avril 2009 à 18:10:36 | Re : Communication dynamique entre contrôles et fenêtre parent

rachid1245

Pour que d'autres en profitent:
j'explique le procès
mon contrôle child est de classe dérivée d'un Edit
la classe de ce contrôle traite un message réfléchis  =EN_CHANGE
dans le message map il donc la macro correspondante
ON_CONTROL_REFLECT(EN_CHANGE, OnChange)
OnChange étant la fonction de traitement du message

pour que ma fenêtre parent réagit au changement dans le contrôle je dois traiter dans cette
fenêtre également le message EN_CHANGE
cela donne dans le message map de la fenêtre parent
ON_EN_CHANGE(IDC_CTRL, OnChangeControl)

alors pour que le message EN_CHANGE soit également traité par la fenêtre parent
il y'a quelque petites modifcations à apporter à tout cela
d'abord on remplace:
ON_CONTROL_REFLECT(EN_CHANGE, OnChange)
par :
ON_CONTROL_REFLECT_EX(EN_CHANGE, OnChange)
quant à la fonction OnChange
qui était du type:
afx_msg void OnChange();
elle doit être du type
afx_msg BOOL OnChange();
de plus elle doit retourner FALSE pour que le message soit traité par la fenêtre parent.

il subsiste cependant un petit problème
comme je demande à ma fenêtre parent de vérifier les données du contrôle lorsqu'elle recoit le message
EN_CHANGE et d'afficher un message d'erreur au cas ou les données. j'ai l'impresson qu'elle vérifie ces données avant même que la fenêtre soit affichée.
il suffit pour éviter celà faire un test d'affichage de la fenêtre au début dans l'inpléméntation (parent ) de EN_CHANGEpar exemple if (!IsWindowVisible) return;







Cette discussion est classée dans : dynamique, fenêtre, communication, parent, contrôles


Répondre à ce message

Sujets en rapport avec ce message

Contrôles invisibles sans redimensionnement de la fenêtre [ par Tibabou ] Bonjour/soir,   Je rencontre un problème très étrange: j'ai sur ma fenêtre 2 contrôles avec du 3D dedans (OpenGL) et en dessous un bouton tout bête.Au Déplacer les contrôles dans une fenêtre. [ par Superweight ] Bonjour  à  tous, <fon Instertion dynamique d'une image sur le fond d'une fenêtre [ par raidentr ] Avec VC++ 6.0 :Est-ce possible d'insérer une image dynamiquement avec la commande CREATEWINDOWSEX ? Si oui quelle est la ligne de commande exacte ? en saturation de contrôles dans une fenêtre de dialogue [ par romydamour ] au cours de la réalisation de mon appli API win32 sous visualc++, je me suis rendu compte que j'étais limité en nombre de contrôles, j'ai un grand nom Récupérer les infos des contrôles [ par Tibabou ] Bonjour/soir,Je ne sais récupérer aucune caractéristique des contrôles que je place sur ma fenêtre. Par exemple, un simple bouton ou un champs de sais Zone pour bouger fenetre [ par masseur ] Salut. Je veux me créer une fenêtre personnelle pour mon programme (sous bouilder). Pour cela je dessine donc mon interface sous un logiciel de dess EDIT avec WM_EX_CLIENTEDGE [ par vecchio56 ] Bonjour J'ai un petit problème un peu difficile à expliquer: J'ai une fenêtre sans le style WS_CHILDWINDOW qui a une child edit. Je dessine par dessu Fenêtre Modale !!!!! [ par LeVince65 ] Hi a ts cppfrance,Actuellement j'ai une fenêtre créer avc CreateWindowEx() et j'aimerais la rendre modale ! Donc ds un premier temps est ce possible d Windows management [ par moreau_l ] Bonjour à tous, J'ai trois questions à poser concernant Windows et sa gestion : -  Comment peut-on retirer la barre bleu (celle qui contient la croi communication par internet [ par catamenia ] bonjours, j'aimerais faire un programme où l'on entre l'adresse ip d'une personne puis un message à lui envoyer.Y a t'il des ports spécifiques à utili


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales