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 :

MFC appel fonctions


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut MFC appel fonctions
    Voila, j'ai un probleme a l'appel d'une fonction.

    J'ai cr�er un bouton START qui appelle une fonction.
    Pour arretter cette fonction, qui tourner initialement en mode console, je devais faire Ctr+C.

    Ici j'ai cr�er un autre bouton STOP. Une fois ke je clique dessus, il met un entier int capt_stop � la valeur=1.

    J'ai fais ds ma fonction un

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    do
    {
    .......
    }
    while(capt_stop!=1)
    Je pensai que cela permettrai d'arretter la fonction.

    Ce qui se passe, c'est qu'une fois que j'appui sur START, ma fonction est appell�e, fonctionne bien mais ne s'arrette plus et je n'ai plus la main sur mes controles.

    Je suis donc obliger de faire Ctr-Alt-Supr ce qui n'est pas top!!

    Si vs avez des id�es. Peut �tre que c'est un probleme connu ds l'appel de fonctions.

  2. #2
    mat.M
    Invit�(e)
    Par d�faut
    *Dans l'appli sous DOS placer un GetMessage qui va capter un message personnalise avec WM_USER

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #define WM_MON_MSG WM_USER+100
    MSG msg;
    do 
    { 
    GetMessage(&msg,NULL,0,0);
    if(msg->message==WM_MON_MSG)break;
    ....... 
    } 
    while(capt_stop!=1)

    *dans l'appli graphique avec bouton, lorsqu'on clic sur le bouton , obtenir le handle HWND de l'appel DOS et avec SendMessage ou PostMessage envoyer un message perso.

    Sinon il ya plus sophistique avec des EVENT , semaphore threads et compagnie...

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    je n'ai pas vraiment compris ceci

    *dans l'appli graphique avec bouton, lorsqu'on clic sur le bouton , obtenir le handle HWND de l'appel DOS et avec SendMessage ou PostMessage envoyer un message perso.

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    J'ai trouv� ca dans l'aide MSDN

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    BOOL bRet;
     
    while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
    { 
        if (bRet == -1)
        {
            // handle the error and possibly exit
        }
        else
        {
            TranslateMessage(&msg); 
            DispatchMessage(&msg); 
        }
    }
    Il faut donc que j'essai d'inclure ca dans ma fonction appell�?

    int capt()
    {

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    do
    {
    /* Retrieve the packets */
    while((res = pcap_next_ex( adhandle, &header, &pkt_data)) >= 0)  
     
    {	
    if(res == 0)
    continue;			
     
    }
    while (capt_stop!=1);
    pcap_close(adhandle);    
    return 0;
    }
    Pour la gestion de ma boite de dialogue j'ai ca

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void CDlgCapture::OnOK() 
    {
    capt();
    CDialog::OnOK();
    UpdateData(TRUE);
     
    }
     
    void CDlgCapture::OnSTOP() 
    {	
    capt_stop=1;	
    }

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Que doit on mettre comme paramettre dans FindWindow?

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut ,
    je reprends .
    que fait cette fonction ?
    un traitement ?
    si c'est le cas un thread peut etre appropri� voir faq:
    http://c.developpez.com/faq/vc/?page...keWorkerThread

    sinon une boucle qui tourne dans une interface , g�le l'interface puique les messages windows ne sont plus trait�s .
    solution possible mettre une pompe a message dans la boucle:
    http://c.developpez.com/faq/vc/?page...rk#PumpMessage

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Ca � l'air de marcher avec une pompe a message mais je ne comprends pas vraiment comment ca marche

    Je comprends pas comment je peux faire communiquer ma fonction avec mon IHM.

    Ma fonction m'affichait des r�sultats en mode console avec printf(....)

    La j'ai une IHM avec un Splitter, j'arrive a ecrire du texte statique avec
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    pDC->TextOut(200,10,"VISUALISATION DES TRAMES CAPTUREES");
    dans OnDraw;

    mais j'aimerai bien afficher des r�sultats que me fournit ma fonction appell�!

    Je vais chercher un peu plus

    Merci

  8. #8
    mat.M
    Invit�(e)
    Par d�faut Re: MFC appel fonctions
    Citation Envoy� par beb30
    Voila, j'ai un probleme a l'appel d'une fonction.

    J'ai cr�er un bouton START qui appelle une fonction.
    Pour arretter cette fonction, qui tourner initialement en mode console, je devais faire Ctr+C.
    ESt-ce que c'est possible d'�tre pr�cis parce qu'on se m�lange les pinceaux : cette fonction elle fait partie d'un programme console � part enti�re ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. MFC - Appel de fonction en mode Unicode ?
    Par Erakis dans le forum MFC
    R�ponses: 8
    Dernier message: 14/11/2007, 13h07
  2. [MFC] Appel Fonction OnEraseBkgnd
    Par bletz dans le forum MFC
    R�ponses: 4
    Dernier message: 13/10/2005, 14h03
  3. R�ponses: 7
    Dernier message: 10/10/2005, 14h31
  4. [MFC] Appel d'une dialog
    Par mac07 dans le forum MFC
    R�ponses: 6
    Dernier message: 23/12/2003, 17h52
  5. Appel fonction assembleur en C
    Par grandjouff dans le forum C
    R�ponses: 6
    Dernier message: 07/12/2003, 20h43

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