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 :

Focus et Timer avec une CFileDialog


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Focus et Timer avec une CFileDialog
    Bonjour,

    j'utilise une CFileDialog (lancer à partir d'un plugins) et j'aimerais la maintenir au-dessus de mon application principale(ou la fermer au bout de quelques secondes).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CFileDialog FileOpenDialog( TRUE, "txt", NULL, OFN_HIDEREADONLY||OFN_CREATEPROMPT, "data (*.dat)|*.dat||",NULL);
    if(FileOpenDialog.DoModal()==IDOK)
    {
    ...
    }
    J'ai essayé de récupérer le Handle de l'appli principale pour créer ma fenêtre en enfant mais ca fonctionne pas.

    J'ai aussi tenter de mettre en place un timer(CWnd::SetTimer dans la FAQ), mais j'ai du mal à récupérer l'événement WM_TIMER ou à mettre en place le CallBack.

    Pour info, je ne maitrise pas du tout l'API windows

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    J'ai refait la partie Callback, ca fonctionne maintenant mais la fonction BringWindowToTop() semble être sans effet.
    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
    TIMERPROC CMyFileDialog::MyTimerProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
    {
       switch(message)
       {
       case WM_TIMER:
    		::BringWindowToTop(Dlg);
    		::SetTimer(Dlg,1, 4000,(TIMERPROC)MyTimerProc);
    		break;
       default:
    		break;
       }
       return 0;
    }
     
    void CMyFileDialog::OnStopTimer() 
    {
       KillTimer(m_nTimer);
    }
     
    BOOL CMyFileDialog::OnInitDialog() 
    {
    	CFileDialog::OnInitDialog();
    	m_nTimer = SetTimer(1, 6000,(TIMERPROC) MyTimerProc);
    	return TRUE;
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    En remplacant,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ::BringWindowToTop(Dlg);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ::ShowWindow(Dlg, SW_MINIMIZE); 
    ::ShowWindow(Dlg, SW_SHOWNORMAL);
    Ca marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. EJB Timer avec une Web Application
    Par tmanta7 dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 14/05/2010, 18h18
  2. Problème avec une entrée et un focus
    Par Soncar dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/05/2008, 18h26
  3. Gestion des modifs de focus avec une autre appli.
    Par Miss Ti dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/01/2008, 09h46
  4. Problème de focus avec une TTreeView
    Par Rustine dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/10/2005, 18h12

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