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 :

Equivalent OnIdle dans une application windows standard


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut Equivalent OnIdle dans une application windows standard
    bonjour!


    Depuis un exécutable windows standard je charge une dll qui utilise les MFC en interne. Etant donné que j'ai un probleme avec les fenêtres modales, je me disais que ça venait peut être du fait que je ne fait pas encore le lien entre mon application et le OnIdle() du CMyApp de la DLL..


    Pour éclaircir voilà le bout de code qui s'occupe des messages dans le .exe, la fonction DllMsgPump est exportée de la DLL, et y fait appel à theApp.PreTranslateMessage(pMsg) :

    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
     
    // Main message loop:
    	BOOL bRet;
     
    	while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
    	{ 
    		if (bRet == -1)
    		{
    			// handle the error and possibly exit
    		}
    		else
    		{
    			if( DllMsgPump!=NULL ){
    				DllMsgPump( &msg ) ;
    			}else
    				MessageBoxA(NULL, "gnagnagna", "Warning", MB_ICONWARNING ) ;
     
    			TranslateMessage(&msg); 
    			DispatchMessage(&msg); 
    		}
    	}
    et j'aimerai savoir s'il faut ajouter le traitement équivalent à CWinApp::OnIdle(), dans cette pompe à message ou meme dans le WndProc de l'exe pour faire "respirer" l'appli

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut
    alors en somme j'ai décidé de rajouter quelque chose directement dans la pompe à messages, ce qui donne :

    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( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
    	{ 
    		if (bRet == -1)
    		{
    			// handle the error and possibly exit
    		}
    		else
    		{
    			if( DllMsgPump!=NULL )
    				DllMsgPump( &msg ) ;
    
    			TranslateMessage(&msg); 
    			DispatchMessage(&msg); 
    		}
    
    		if( ProcessDllIdle!=NULL )
    			ProcessDllIdle() ;
    	}
    Avec ProcessDllIdle une fonction exportée de la DLL qui appelle CWinApp::OnIdle()

    mais 2 fenetres modales en même temps ça marche toujours pas, ça ne semble pas etre ça la cause

Discussions similaires

  1. Style Outlook dans une application Window Form
    Par Klemsy78 dans le forum C#
    Réponses: 2
    Dernier message: 16/04/2010, 21h59
  2. Réponses: 1
    Dernier message: 21/10/2009, 15h07
  3. problème d'authentification dans une application windows
    Par meryDev dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/07/2009, 18h05
  4. InvalidOperationException dans une application windows ce
    Par redpopo dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 11/03/2008, 12h58
  5. Réponses: 4
    Dernier message: 03/10/2007, 13h59

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