IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

(Dotnet) Windowproc et SendMessage


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut (Dotnet) Windowproc et SendMessage
    salut,

    je voudrais avoir de l'aide car je suis vraiment perdu, j'ai essayé pleins de choses mais rien ne va!!!
    j'ai pensé à une solution mais il me manque des données(?): dans le fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
    		{
    //je voudrais récuperer les données du buf pour les placer dans la textbox			
    			switch ( lParam )
    			{
    			case (?) :
     
    			 textBox1->Text = (?);
    				 break;
     
    			}
    			;
    		return DefWindowProc(hf,uMsg,wParam,lParam);
    		}	
    }
    dans le .cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hf,NULL, NULL ,LPARAM(buf));
    // hf est obtenue avec HWND hf = GetForegroundWindow();cette fonction est placée dans le fichier.h mais peut-être que cela ne donne pas le handle de mon formulaire

    ]

    si vous pouvez me conseiller, merci!


  2. #2
    mat.M
    Invité(e)
    Par défaut
    C'est incompréhensible ; peux-tu faire plus clair et explicite ?
    C'est avec .NET ? On n'utilise pas de procédure de messages avec .NET ni fonctions CALLBACK , cela n'existe pas .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    salut,

    je voudrais avoir de l'aide car je suis vraiment perdu, j'ai essayé pleins de choses mais rien ne va!!!
    j'ai pensé à une solution mais il me manque des données(?): dans le fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public: System::Void WndProc(LP)  
    { 
    //je voudrais récuperer les données du buf pour les placer dans la textbox 
               switch ( lParam ) 
               { 
                    case (?) : 
     
                     textBox1->Text = (?); 
                     break; 
     
               } 
     
    Form::WndProc(m);
    }
    dans le fichier .cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(hf,NULL, NULL ,LPARAM(buf));
    // hf est obtenue avec HWND hf = GetForegroundWindow();cette fonction est placée dans le fichier.h mais peut-être que cela ne donne pas le handle de mon formulaire

    j' espère que c'est plus claire


  4. #4
    mat.M
    Invité(e)
    Par défaut
    stgi02 je peux pas te répondre si tu ne réponds pas clairement à tes questions.
    En plus tu as fais un copier-coller de ta premiere question !

    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )

    C'est pour win32 !!! pas pour NET !!!
    Il faut le dire en quelle langue ? En Chinois ?

    Que veux tu faire précisément ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Par défaut
    Moi non plus j'ai rien compris...
    Et puis je te conseille d'utiliser les balises code pour plus de clarté.

    PS: si tu reformule ta question nous pourront peut être te répondre.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    bonsoir si vous voulez m'aider ,vous pouvez regader dans le message que j' ai posté le 10/04 le titre est :
    (DotNet c++) envoi de données dans une textbox
    vous comprendriez mieux mon problème
    merci

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    alors, continue à poster à la suite de ton ancien thread
    et utilise la balise code

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    je suis tjs sur le même problème car mais cette semaine il n'y a personne qui peut m'aider là ou je fais mon stage..
    je chercher de mon côté j' explique mon problème
    dans le fichier.cpp est que je dois appeller le fichier .h?
    dans le fichier .cpp
    j' ai définie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #define WM_MESSAGE_TEXT (WM USER+1);
    //aprés la fonction ReadFile j'ai fais
    SendMessage(HWND_BROADCAST,WM_MESSAGE_TEXT,NULL,LPARAM(buf2));
    //HWND_BROADCAST ,comme ça je suis sûr que le formulaire est affecté
    puis dans le fichier.h correspondant au formulaire,textbox,...est qu'il faut inclure le fichier.cpp??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #define WM_MESSAGE_TEXT (WM_USER+1)
     
    public:Systeme::Void WndProc (Message* m)
    {
                switch (m->Msg)
                 {
                      case  WM_MESSAGE_TEXT:
                 // je veux récuperer les données contenues dans le buf
                  break;
                 }
                 Form::WndProc (m);
    }
    ce que je veux c'est quand je réception une donnée SendMessage doit envoyer les données dans le fichier .h pour que je puisse les traiter

    merci bcp de bien vouloir m'aider , c'est mon seul espoir

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Franchement, je vois pas pourquoi tu t'obstines à faire comme ca

    Il y a bien un endroit où tu déclares ta deuxieme form et où tu provoques son affichage ?
    genre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                     form2 * myForm2 = new form2();
    				 myForm2->Show();
    Et bien à ce moment là, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myForm2->TextBox1->Text = "ton texte"
    Ne cherche pas plus compliqué

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    mon formulaire et ma textbox se trouve dans Form1
    mais est ce que je peux y acceder du fichier .cpp ,
    ca serait moins compliqué

    merci

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    bon ... j'ai assez donné,

    je te laisse avec cet exemple : http://nico-pyright.developpez.com/exempleBidon.rar

  12. #12
    mat.M
    Invité(e)
    Par défaut
    Est-ce que tu peux répondre précisément aux questions ?

    *quel OS ?
    *quel outil de développement ?
    *quelles technologies ? MFC , .NET , win32 ?
    *pour quel type de projet ?

    Merci.
    C'est dur apparemment de demander de la précision aux gens.

    Apparemment tu n'as toujours pas compris que les fonctions CALLBACK comme en win32 cela ne marche pas avec .NET

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Citation Envoyé par mat.M
    Apparemment tu n'as toujours pas compris que les fonctions CALLBACK comme en win32 cela ne marche pas avec .NET
    Disons que ca marche, mais c'est en fait un relai. Tu recois bien des messages systèmes du genre WM_SETFOCUS, mais pas un message perso.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    salut ,
    je programme sur visual studio .net 2003 en c++
    mon projet à pour but de réaliser un genre d'Hyper terminal
    la seule chose qui me manques c'est de pouvoir mettre les données reçues dans la textbox

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    t'as regardé mon projet d'exemple ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    oui j'ai regardé mais ça je sais le faire mais dans mon cas je voudrai atteindre la textbox du fichier .cpp qui n'a rien avoir avec le Form.h
    pour mettre les données
    j'ai essayé mais ça pose problème

  17. #17
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par stgi02
    salut ,
    je programme sur visual studio .net 2003 en c++
    mon projet à pour but de réaliser un genre d'Hyper terminal
    la seule chose qui me manques c'est de pouvoir mettre les données reçues dans la textbox
    Ok merci pour la réponse.
    Et il n'y pas pas un composant .NET tout fait pouvant faire cela ?


    Citation Envoyé par nico-pyright(c)
    Citation Envoyé par mat.M
    Apparemment tu n'as toujours pas compris que les fonctions CALLBACK comme en win32 cela ne marche pas avec .NET
    Disons que ca marche, mais c'est en fait un relai. Tu recois bien des messages systèmes du genre WM_SETFOCUS, mais pas un message perso.
    Oui mais c'est une solution de bricolage un peu parce que pour .NET il faut du code "managed" en principe ( je sais qu'on peut mixer les 2 code natif et code "managed" )
    Ce que je ne comprends pas c'est pourquoi l'auteur du message a besoin absolument d'appeler une fonction CALLBACK étant donné que sous .NET c'est totalement transparent

  18. #18
    mat.M
    Invité(e)
    Par défaut
    Eh non ça ne marche pas comme cela !
    En win32 on ne peut pas faire TextBox1->Text
    Il faut utiliser GetDlgItem pour obttenir une référence sur la boite de texte et la remplir avec SetWindowText !
    Auparavant il faut le Handle de textbox1 ; Obtenir le Handle de textbox1 puis afficher avec SetWindowText

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    salut est ce que tu peux m'expliquer plus clairement
    je t'explique mon prog:
    la textbox1 se trouve dans le fichier Form1.h
    là dedans j'effectue la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    IntPtr ;
    IntPtr get_Handle(); //pour récupérer le handle de la textbox
    j'ai un autre fichier qui s'appelle serial.cpp
    c'est là que j'ai mis le code pour l'émision et la réception des données sur le port série
    pour récuperer les données j'ai effectué la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ReadFile(hComm,&buf,dwtoRead,&dwRead,&ov);
    //cette fonction fonctionne car je récupère bien les données mais c'est ici que je bloque je ne sais pas quoi faire pour envoyer les données dans la textbox1
    merci de m'aider

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    salut , pour le handle de la textbox j' ai ecris n'importe quoi..

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/08/2008, 17h30
  2. sendmessage()
    Par benoit70 dans le forum MFC
    Réponses: 27
    Dernier message: 22/01/2004, 13h45
  3. SendMessage bloquant l'exécution du programme
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2003, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo