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

Bibliothèques Discussion :

Thread et IHM


Sujet :

Bibliothèques

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Par défaut Thread et IHM
    Bonjour,
    j'ai une classe qui implemente ses différentes interfaces :
    class ATL_NO_VTABLE CPropPage :
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CPropPage, &CLSID_PropPage>,
    public IPropertyPageImpl<CPropPage>,
    public CDialogImpl<CPropPage>

    dans une des fonctions de cette classe je veux gérer une barre de progression. Pour celà je dois utiliser les threads car sinon l'IHM ne se met pas à jour.

    J'ai donc créé une classe qui dérive de CWinThread et utilisé la fonction AfxBeginThread comme suit pour lancer le thread :
    UIThreaded* pUIThreaded = (UIThreaded*)AfxBeginThread(
    RUNTIME_CLASS(UIThreaded),
    THREAD_PRIORITY_ABOVE_NORMAL, 0,
    CREATE_SUSPENDED);
    pUIThreaded->ResumeThread();

    Jusqu'ici tout va bien, les fonctions InitInstance, ExitInstance, ... de la classe UIThreaded sont bien appellée. Maintenant ce que je voudrais faire s'est modifier l'IHM. En d'autre mots, récupérer l'object ProgressBar et en modifier les paramètres.
    Est ce quelqu'un sait comment réaliser cela ?
    Je suis aussi ouvert à l'utilisation d'une autre méthode pour gérer l'IHM à partir d'un thread.
    Merci.

  2. #2
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Par défaut News.
    Alors,
    j'ai finalement utilisé la fonction AfxBeginThread avec un prototype de ce type

    CWinThread* AfxBeginThread(
    CRuntimeClass* pThreadClass,
    int nPriority = THREAD_PRIORITY_NORMAL,
    UINT nStackSize = 0,
    DWORD dwCreateFlags = 0,
    LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
    );

    j'ai modifié le constructeur de la classe passée comme premier paramètre pour avoir accès à la progress bar.
    En effet dans la fonction (par exemple) InitInstance de ma classe de type CWinThread, j'arrive à gérer la barre de progression.

    Là ou ca se complique, c'est au moment de l'exécution. Je remarque en observant l'IHM, que la modification de celle ci se fait seulement après que le thread principal ait fini son travail.
    Par exemple un des boutons de l'IHM reste en position enfoncé tant que le code du thread principal n'a pas été éxecuté.
    Pourtant je suis sur que le second thread fonctione car j'ai pu en vérifier le fonctionnement à l'aide de MessageBox.

    Je tiens à préciser que je suis en train de développer une dll qui modifie l'interface graphique d'un logiciel (ETS3-KONNEX), outre cela la DLL doit aussi lancer du code qui gérer certainnes API de communication avec un bus bifilaire.
    Ce code ne peut fonctionner que dans le thread principal, d'où l'impossibilité d'utiliser un thread de travail. Voir le prototype ci dessous.

    CWinThread* AfxBeginThread(
    AFX_THREADPROC pfnThreadProc,
    LPVOID pParam,
    int nPriority = THREAD_PRIORITY_NORMAL,
    UINT nStackSize = 0,
    DWORD dwCreateFlags = 0,
    LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
    );

    C'est si difficile que ca à faire ?

Discussions similaires

  1. [JLayer Javazoom] Poblème thread et IHM
    Par thibzko dans le forum Composants
    Réponses: 0
    Dernier message: 08/06/2015, 17h13
  2. thread et IHM
    Par koolben dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 11/02/2008, 09h41
  3. Thread/Mise a jour d'IHM
    Par davids75014 dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 04/06/2007, 14h44
  4. [VB.NET][VS2003] Threads et IHM
    Par toniolol dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 13h54
  5. [SWT]mise a jour ihm SWT par un thread
    Par will82 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 06/08/2004, 11h37

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