Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2400 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Edit: Envoie d'un message vers mes Dialogues..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Edit: Envoie d'un message vers mes Dialogues..

n°511432
iS@mi
Resistance is futile !
Posté le 10-09-2003 à 04:11:16  profilanswer
 

Salut,
J'ai créé mon propre contrôle qui affiche une liste de dates et j'aimerais quand l'utilisateur choisit une autre date que le contrôle lui-même prévienne de ce changement au dialogue dans lequel il se trouve !
 
En gros, je voudrais reproduire le même principe que le message clique (ON_BN_CLICKED(IDC_CANCEL, OnBnClickedCancel)) d'un simple CButton mais avec ma fonction personnelle naturellement sans pour autant devoir créé des messages pour les appeler ensuite avec SendMessage.
 
 
Style :
 

Code :
  1. class MonControl : public CWnd
  2. {
  3. public :
  4.    void Refresh() ;
  5. afx_msg void OnPaint();
  6. } ;
  7. void MonControl::OnPaint()
  8. {
  9. // Je préviens mon dialogue qu?il y a eu un changement
  10.         // Et dans un style d'héritage du temps, la fonction est
  11.         // reflétée dans mon dialogue.
  12. Refresh() ;
  13. }
  14. //----------------------------------------------//
  15. class MonDialog : public CDialog
  16. {
  17. public:
  18.   void Refresh();
  19. };
  20. BEGIN_MESSAGE_MAP(CCommandeDlg, CDialog)
  21. ON_BN_CLICKED(IDC_MONCONTROL, Refresh)
  22. END_MESSAGE_MAP()


 
 
J'espère que quelqu'un d'assez calé en MFC pourra m'aider.
 
Merci bcp de votre aide.


Message édité par iS@mi le 13-09-2003 à 10:10:37
mood
Publicité
Posté le 10-09-2003 à 04:11:16  profilanswer
 

n°511446
VisualC++
J'va y penser ...
Posté le 10-09-2003 à 08:06:36  profilanswer
 

Tu dis que tu veux des messages, donc a part Send ou Post message euh y a pas grand chose d'autre en user define.
 
Sinon, c faire ds ta dlg une methode accessible par ton controle.
 
Ou alros j'ai rien compris (mais bon ton exemple c un MESSAGE qui est envoye, le WM_PAINT, donc cf 1)

n°511650
iS@mi
Resistance is futile !
Posté le 10-09-2003 à 13:06:38  profilanswer
 

VisualC++ a écrit :

Tu dis que tu veux des messages, donc a part Send ou Post message euh y a pas grand chose d'autre en user define.
 
Sinon, c faire ds ta dlg une methode accessible par ton controle.
 
Ou alros j'ai rien compris (mais bon ton exemple c un MESSAGE qui est envoye, le WM_PAINT, donc cf 1)


 
 
En gros j'ai une liste de dates qui s'affichent dans mon control et qd l'utilisateur clique sur une autre date, j'ai besoin d'informer le dialogue où se trouve celui-ci pour effectuer certain changement dans le dialogue.
 
Pour cela, j'aurais besoin que mon contrôle lorsqu'il y un changement informe le dialogue où il se trouve de cela pour que je puisse faire les changements (j'ai une série de statictext à modifier, etc, etc).


Message édité par iS@mi le 10-09-2003 à 13:06:54
n°511668
VisualC++
J'va y penser ...
Posté le 10-09-2003 à 13:27:29  profilanswer
 

Et un SendMessage() vers ton Dialog ca suffit pas ? Ou tu as d'autres contraintes ?

n°511696
Carbon_14
Posté le 10-09-2003 à 13:56:58  profilanswer
 

Ou PostMessage() avec WM_USER + x (paraît qu'il faut que x soit assez grand ?? j'utilise 1, 2, 3 sans pb (apparent))

n°512219
iS@mi
Resistance is futile !
Posté le 11-09-2003 à 09:51:56  profilanswer
 

CARBON_14 a écrit :

Ou PostMessage() avec WM_USER + x (paraît qu'il faut que x soit assez grand ?? j'utilise 1, 2, 3 sans pb (apparent))


 
Finalement, je me suis résigné à utiliser le SendMessage (j'imaginais qu'il y avait une autre méthode).
 
Pour le problème avec le WM_USER, il y a qqs explications ici :
 
http://msdn.microsoft.com/library/ [...] essage.asp
 
 
Merci

n°512251
Ashe2
Posté le 11-09-2003 à 10:43:10  profilanswer
 

Vaut mieux utiliser WM_APP au lieu de WM_USER..

n°512409
Carbon_14
Posté le 11-09-2003 à 13:59:41  profilanswer
 

WM_USER semble dater du 16 bits. Ai pas pu trouver WM_APP sous win 3.11 :D...  
 
Windows est "fait" de messages, on rajoute ses messages persos pour nos besoins, et ça roule.

n°513820
iS@mi
Resistance is futile !
Posté le 13-09-2003 à 07:32:26  profilanswer
 

CARBON_14 a écrit :

WM_USER semble dater du 16 bits. Ai pas pu trouver WM_APP sous win 3.11 :D...  
 
Windows est "fait" de messages, on rajoute ses messages persos pour nos besoins, et ça roule.


 
CARBON_14 aurais-tu une idée de comment pouvoir envoyer un message à toutes les fenêtres de mon applications sans pour autant avoir les variables de celles-ci ?
 
J'ai longtemps programmé dans l'infercafe MacOS et il y avait un systèm du style :
 

Code :
  1. for(int i = 0; i<GetDialogCount(); i++)
  2. {
  3. Dialog *dlg = GetDialogID(i);
  4. // là, suffisait d'envoyer le message dans chaque dialogue
  5. }


 
Merci


Message édité par iS@mi le 13-09-2003 à 07:46:16
n°513871
VisualC++
J'va y penser ...
Posté le 13-09-2003 à 10:42:13  profilanswer
 

Ca donne ca a peu pres (pas teste)
 

Code :
  1. int iID = 0;
  2. CWnd* pWnd = NULL;
  3. while( (pWnd = GetDescendantWindow(iId)) != NULL) {
  4.     iID++;
  5.     ..... traitement
  6. }


Message édité par VisualC++ le 13-09-2003 à 10:54:30

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Edit: Envoie d'un message vers mes Dialogues..

 

Sujets relatifs
fonction qui redirige vers une autre page ?[VC++] Pb afficher dans EDIT sans bouton
lien vers les certificats dans un fichier htmlVariable Edit
[C] Un n-ieme sujet sur les pointeurs (theorie vers pratique)drag and drop d'un attach Outlook vers mon appli VB
[MFC] imprimer la vueenvoie groupé d'un même email ???
ajouter un lien vers une page si sa derniere modif a moins de 15jSystray Icon en MFC
Plus de sujets relatifs à : [MFC] Edit: Envoie d'un message vers mes Dialogues..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR