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 :

Contrôler un contrôle


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 51
    Par défaut Contrôler un contrôle
    Bonjour à tous,

    saurriez vous me dire comment faire pour qu'un contrôle soit plus priortaire qu'un autre?

    Par exemple, si j'appuie sur un contrôle qui m'entraine l'execution d'une boucle "Tant que...faire..." pendant un certain temps j'aimerais pouvoir stopper cette execution un appuyant sur un autre contrôle. Le problème est que j'ai l'impression que je ne peux pas utiliser ce dernier avant la fin de l'execution de ma boucle.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    tu créé un thread pour executer ta boucle tant que. Dans cette boucle tu rajoute un test sur une variable booléen (initialisée ) dont tu auras passé un pointeur en paramètre. Dans le bouton "prioritaire" tu commences par passer la valeur opposée au booléen puis à la fin tu repasse le booléen à la valeur initiale. Fais attention toutefois aux situations bloquantes .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 51
    Par défaut
    Ben ça à l'air super simple dit comme ça, mais est-ce que tu pourrais être un tout p'tit peu plus précis s'il te plait car je débute en visual c++ et en c++
    merci

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    oki bon alors moi je ferais comme ca :

    dans ton fichier .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class CDlg: publicCDialog
    {
    public:
       bool m_bTest;
    ....
    private:
       static UINT ThreadFunc(LPVOID pParam);
    ....
    };
    dans ton .cpp
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    UINT CDlg::ThreadFunc(LPVOID pParam)
    {
       bool *pTest = static_cast<bool *>(pParam);
       ...
       while (...)
       {
           if ((*pTest) == true)
           {
                sleep(XXX); // XXX temps d'attente
            }
            else
            {
                ... // ce que tu veux faire
             }
       }
       ...
    }
     
    void CDlg::boutonnormalclick(...)
    {
            m_bTest = false;
            afxBeginThread(CDlg::ThreadFunc, &m_bTrest, THREAD_PRIORITY_NORMAL);
     
             // Assurer la sureté de l'application (bloqué certains acces apr exemple)
    }
     
     
    void CDlg::boutonprioclick(...)
    {
          m_bTest = true;
          .....
          m_bTest = false;
    }
    je pense que ca marche mais je ne suis pas sur

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 51
    Par défaut
    Ok merci je vais voir comment je peux me faire avec mon application et ton explication

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 51
    Par défaut
    J'ai un petit soucis
    N'y a t-il pas un problème du fait que mon application soit une appli SDI?

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    le problème que tu soulève ici est un problème de gestion de processus, et ce n'est pas trivial lorsqu'on débute en c++ (en dev tout court en fait). Je pense que la première chose dont tu aies besoin, est de prendre connaissance de ce qu'est un thread (processus léger), à quoi ça sert, puis de regarder la méthode afxBeginThread (cf http://msdn2.microsoft.com/en-us/library/s3w9x78e.aspx )
    Une fois que tu auras fais cela, ça ira tout seul

Discussions similaires

  1. [PHP 5.3] Contrôler le type MIME d'une image + contrôle de mon code
    Par beegees dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2011, 21h03
  2. Codes de contrôle des imprimantes
    Par hetzel dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 21/03/2003, 17h17
  3. [ActiveX] Propriété "Picture" dans un contrôle util
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/12/2002, 15h59
  4. [contrôle] dbDateTimePicker ???
    Par Fizgig dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/11/2002, 15h45
  5. [Kylix] Contrôle DBGrid
    Par KThrax dans le forum EDI
    Réponses: 1
    Dernier message: 10/05/2002, 14h18

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