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] Forcer le reaffichage


Sujet :

MFC

  1. #1
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut [MFC] Forcer le reaffichage
    Bonjour,

    J'ai une fenetre MFC qui ouvre des dialog box. Or, lorsque celles-ci s'ouvrent, si je les deplace par dessus l'interface qui les a ouvertes, celle ci est bien reaffichee. Par contre si je clique sur l'interface derriere et que donc je cache la dialog box que j'ai ouverte, a l'endroit ou etait positionnee la petite dialobox , j'ai un rectangle gris. Ce qui veut dire que mon interface principale ne s'est pas redessinne a cet endroit. Pourtant les controles qu'elle comporte continuent de se reafficher. Le seul moyen de la reafficher correctement est de faire reduire, puis afficher.

    Avez vous une idee de comment je peux resoudre ceci ?

  2. #2
    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,
    il est bizarre ton probleme .
    je suppose que la dialogue est non modale .
    eventuellement verifie que la fenetre principale ne soit pas desactiv�e par un EnableWindow(FALSE) .
    comme c'est le cas lors d'un DoModal() si on donne une fen�tre parent a la dialogue


  3. #3
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Et CWnd::UpdateWindow()

  4. #4
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Bon j'ai un peu mieux observe ce qu'il se passe.

    Un collegue a developpe une interface graphique, et me passe un handle sur un conteneur ou je peux dessiner ma vue. Jusque la pas de probleme. Je cree ma vue et l'affiche avec son handle comme parent. Mais si une fenetre quelconque windows apparait a l'ecran, masque UNE PARTIE de ma vue et que je reclique sur celle-ci pour la refaire passer devant, ma vue n'est pas reaffichee. Cela ne fait pas cela pour la vue generale, celle de mon collegue.

    Cela vous aide t'il un peu ?

  5. #5
    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
    re,
    ta vue elle est deriv�e de quelle classe de base ?
    tu a plac� un traitement dans le paint ?
    essaye de mettre un TRACE("\nPaint"); pour voir si �a passe dans ce contexte de recouvrement.


  6. #6
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Ma classe vue est heritee des CDialog. Quand au paint, je n'ai pas surcharge la methode. Aurais-je du ?

    Je vais essayer.

    EDIT : Le paint est bien appele.

  7. #7
    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
    dans quoi tu dessines alors ?

  8. #8
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Mon collegue me passe un handle sur un CFormView. Ce handle a juste pour but de definir une zone ou afficher ma vue dans l'interface generale du soft.

    Pour preciser un peu. Il me donne ce handle et moi je monte ma vue sur un thread et donc j'ai une pompe a messages afin de les redispatcher :

    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
      while(1)
      {
        dwRet = MsgWaitForMultipleObjects( 1,             // One event to wait for
                                          &hStopEvent,    // The array of events
                                          FALSE,          // Wait for 1 event
                                          INFINITE,       // Timeout value
                                          QS_ALLINPUT);   // Any message wakes up
        if(dwRet == WAIT_OBJECT_0)
          //Stop thread
          return 0;
        else if(dwRet == WAIT_OBJECT_0 + 1)
          while(PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE))
          {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
          }
        else
          return 0;
      }

  9. #9
    mat.M
    Invit�(e)
    Par d�faut
    C'est incompr�hensible ce qui est d�crit l�

    J'ai une fenetre MFC qui ouvre des dialog box
    Attention utiliser la bonne terminologie que tout le monde puisse comprendre ;
    Chez moi une fen�tre cela peut �tre mat�riellement une CDialog ou bien une architecture MDI/SDI avec CFrameWnd/CDocument/CView
    Donc fen�tre=CDialog



    Mon collegue me passe un handle sur un CFormView.
    Pour rafra�chir une CFormView il faut obtenir un pointeur sur CDocument et appeler UpdateAllView ; [/quote]

  10. #10
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Merci a Gabrielly et a farscape. J'ai finalement trouve.

    Il m'a suffit de faire un UpdateWindow() dans la methode Paint. C'est tout mais je n'y avais pas pense !

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

Discussions similaires

  1. [XL-2010] Forcer une couleur dans la MFC
    Par Harry Covair dans le forum Excel
    R�ponses: 4
    Dernier message: 29/09/2011, 08h58
  2. [MFC] CDialog -> forcer le rafraichissement
    Par Rafoo dans le forum MFC
    R�ponses: 3
    Dernier message: 05/09/2006, 16h51
  3. [MFC] Reaffichage d'un toolbar ferm�
    Par kinhelios dans le forum MFC
    R�ponses: 4
    Dernier message: 14/08/2006, 09h43
  4. [MFC] forcer le dessin d'une CDialog
    Par ricky78 dans le forum MFC
    R�ponses: 3
    Dernier message: 03/10/2005, 15h42
  5. probleme de reaffichage avec openGL [MFC]
    Par ryu20 dans le forum MFC
    R�ponses: 9
    Dernier message: 22/01/2005, 20h12

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