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] Changement Focus


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut [MFC] Changement Focus
    Lut,

    Je cherche a faire un truc du genre ALT-TAB sous Windows.
    Mais ici c'est quand je suis dans word et que j'appuye sur ESPACE ca affiche mon applic et si je suis dans mon applic et que j'appuye sur ESPACE je vais sous word. MAIS helas ca ne marche que que quand je fais WORD -> Mon applic mais pas l'inverse :-(

    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
     
    LRESULT CALLBACK fonctionIntercepteClavier (int nCode, WPARAM wParam, LPARAM lParam) 
    {
    	if(nCode >= 0) 
    	{
    		if( (GetKeyState(wParam)& 128) != 0 && wParam == VK_SPACE) // si key down et espace
    		{
    			handleApplic = FindWindow(NULL,"Attraction"); // recupere handle de mon applic
     
    			c = nomModule + GetModuleFileName(0, nomModule, 264);
    			while(*c != '\\') 
    				c--;
    			if(stricmp(c+1, "WINWORD.EXE") == 0)  // si word
    			{
    				handlePlayer = GetFocus(); // recup handle sur word
     
    				SendMessage(handleApplic,WM_SETFOCUS,0,0); // affiche mon applic (ca marche)
    				return 1;
    			}
    			if(stricmp(c+1, "Mon Applic.EXE") == 0) // si mon applic (je sais que je rentre dedans mais ne change pas le focus :-(
    			{
    				SendMessage(handlePlayer,WM_SETFOCUS ,0,0);		// affiche word (marche po)
    				return 1;
    			}
    		}
    		return CallNextHookEx(hookClavier, nCode, wParam, lParam); //return 1 pour empecher le traitement des touches, sinon retourner CallNextHookEx(...)
    	}
     
    	return CallNextHookEx(hookClavier, nCode, wParam, lParam);
    }
    Quelqu'un voit une erreur??? J'ai tente le SendMessage, le SetFocus, le showWindow mais ca ne passe pas.

    Peut etre que je ne recup peut etre pas le bon handle sur word....

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    En posant des points d'arret, il faudrait vérifier que le prog passe bien dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(handlePlayer,WM_SETFOCUS ,0,0);
    et aussi que handlePlayer est bien initialisé....

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    En fait je sais que je passe dedans car quand j'affiche une message box elle s'affiche correctement. POur avoir le handle de word on peut faire comment???

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    Avec un FindWindow

  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

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut
    Quand je fais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    handlePlayer = FindWindow(NULL,"Cahier de charges - Microsoft Word");
    Ca marche mais quand j'envoi le message SETFOCUS a word, il ne se remet pas en premier plan ??????

    Le fait d'etre dans un hook gene quelque chose???

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    salut,

    je viens d'essayer avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowWindow(hfen, SW_SHOWNORMAL);
    et ca marche dans un hook

Discussions similaires

  1. Désactiver changement focus
    Par bolandfranck dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/06/2008, 22h53
  2. Message MFC Changement de Document
    Par skalimer0 dans le forum MFC
    Réponses: 4
    Dernier message: 10/07/2007, 13h47
  3. [MFC] changement de texte dans un bouton
    Par benjiprog dans le forum MFC
    Réponses: 16
    Dernier message: 12/06/2006, 20h48
  4. [MFC] PropertySheet -> Focus
    Par Grey dans le forum MFC
    Réponses: 9
    Dernier message: 16/11/2005, 10h48
  5. [MFC] Changement de la police d'un contrôle
    Par nmarf dans le forum MFC
    Réponses: 4
    Dernier message: 16/09/2005, 12h38

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