begin process at 2012 05 29 06:04:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Fenêtre en premier plan sans focus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fenêtre en premier plan sans focus

jeudi 10 juin 2010 à 11:13:35 | Fenêtre en premier plan sans focus

thenaoh

Bonjour,

Je cherche depuis plusieurs jours à afficher une application de mon cru (une appli AIR) en premier plan, mais sans qu'elle prenne le focus aux autres fenêtres windows. J'ai déjà essayé le code suivant :

HWND hFenetre = FindWindow("ApolloRuntimeContentWindow", NULL);
ShowWindow(hFenetre, SW_SHOWNOACTIVATE);
SetWindowPos(hFenetre, HWND_TOPMOST, 10, 10, 500, 500, SWP_NOACTIVATE);

Il me met bien ma fenêtre en premier plan sans lui attribuer le focus à l'exécution de ce code. Mais ce que je souhaiterais, c'est que même quand je clique sur la fenêtre de mon application, qu'ell ne prenne jamais le focus.

Le but de cette manip est de pouvoir réaliser un clavier virtuel et, ayant déjà le code pour envoyer les caractères tapés dans le buffer clavier, il serait donc intéressant que la fenêtre cible (Bloc-notes Windows, barre d'adresse IE, etc ...) garde le focus pendant que je tape sur mon clavier virtuel.

Merci par avance pour votre aide !
jeudi 10 juin 2010 à 11:35:16 | Re : Fenêtre en premier plan sans focus

buno

Administrateur CodeS-SourceS
Hello,

même quand je clique sur la fenêtre de mon application, qu'ell ne prenne jamais le focus


Je ne pense pas que ce soit possible. En effet, si tu cliques sur une fenêtre, c'est que tu veux interagir avec elle, donc que tu veux qu'elle prenne le focus.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
jeudi 10 juin 2010 à 12:30:04 | Re : Fenêtre en premier plan sans focus

thenaoh

Bonjour,

Eh bien c'est bien ce que je me disais, mais en voyant ça : http://wpfkb.codeplex.com/ , où il y a un clavier virtuel en premier plan qui ne prenne pas le focus aux autres fenêtre, du coup, je me demande comment c'est possible ...

Si quelqu'un a une idée ...
jeudi 10 juin 2010 à 13:26:08 | Re : Fenêtre en premier plan sans focus

thenaoh

Un bien meilleur exemple de ce que je veux faire à l'adresse suivante :

Touch-It Virtual Keyboard 4.3.0.3

Quelqu'un a une idée de comment c'est possible ?
jeudi 10 juin 2010 à 20:05:22 | Re : Fenêtre en premier plan sans focus

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Depuis Windows 2000, c'est possible en mettant le style étendu WS_EX_NOACTIVATE.
Pour créer la fenêtre principale de ton application tu peux faire:
Code C/C++ :
hFenetre=CreateWindowEx(WS_EX_NOACTIVATE | WS_EX_TOPMOST,...

Ne pas oublier de mettre
Code C/C++ :
#define _WIN32_WINNT 0x0500

juste avant
Code C/C++ :
#include <windows.h>

Si tu veuwx changer le style édendu même quand la fenêtre est déjà créée, utilise SetwindowLong() ou SetWindowLongPtr().

jeudi 10 juin 2010 à 20:11:20 | Re : Fenêtre en premier plan sans focus

racpp

Administrateur CodeS-SourceS
Le #define _WIN32_WINNT 0x0500 n'est utile que si le compilateur n'arrive pas à reconnaitre WS_EX_NOACTIVATE. C'est le cas dans mon Visual C/C++ 2005.
jeudi 10 juin 2010 à 20:21:17 | Re : Fenêtre en premier plan sans focus

thenaoh

Salut,
Merci beaucoup racpp !

J'aurais cependant quelques petites questions (de débutant ) :
- peux-tu me donner un exemple complet pour l'utlisation de CreateWindowEx() ? J'avais déjà essayé mais sans succès pour le moment.
- peut-on faire cette manip (fenêtre qui ne prend jamais le focus) avec une fenêtre déjà créée ? En l'occurrence dans mon cas une application développée en AIR.

Merci !!!


jeudi 10 juin 2010 à 20:47:25 | Re : Fenêtre en premier plan sans focus

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Essaie avec ça:
Code C/C++ :
HWND hFenetre = FindWindow("ApolloRuntimeContentWindow", NULL); 
UINT styleex=GetWindowLong(hFenetre,GWL_EXSTYLE);	
SetWindowLong(hFenetre,GWL_EXSTYLE,styleex | WS_EX_NOACTIVATE);
SetWindowPos(hFenetre,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
jeudi 10 juin 2010 à 20:58:34 | Re : Fenêtre en premier plan sans focus

thenaoh

Erratum : c'est bon, j'ai trouvé la réponse à ma première question tout seul comme un grand .

Par contre, la seconde question m'intéresse toujours, à savoir : peut-on faire cette manip (fenêtre qui ne prend jamais le focus) avec une fenêtre déjà créée ? En l'occurrence dans mon cas une application développée en AIR.

Merci !
jeudi 10 juin 2010 à 20:59:18 | Re : Fenêtre en premier plan sans focus

thenaoh

Oups désolé, j'avais pas vu le post précédent !

1 2 3

Cette discussion est classée dans : plan, code, focus, fenêtre, premier


Répondre à ce message

Sujets en rapport avec ce message

[win32] Premier plan sans focus [ par Isoth0p ] Bonjour, je voudrais savoir comment faudrait-il faire pour placer au premier plan une application SANS qu'elle prenne le focus. Existe-t-il une foncti Mettre une fenêtre en premier plan [ par jipp ] Hey, encore un novice en MFC.Je souhaitrai connaitre le code qui permette de mettre en premier plan une fenêtre.Concrétement, j'ai un SDI avec des boi Focus Editbox [ par NeoUmbrella ] Bonjour, j'aimerais etre averti lorsqu'un editbox a le focuspour ceci je procede comme ceci :case WM_NOTIFY:if(((LPNMHDR)lParam)->code == EN_SETFOCUS) Focus sur fenêtre fille en MDI [ par minet03 ] Coucou J'ai fais une MDI à la va vite parce que le "tuto" Made In MSDN n'est pas terrible. J'ai créé une fenêtre principale. Puis j'ai créer une fenêt Faire passer la fenêtre principale au 1er plan [ par jipp ] Bonjour à tous,Cela fait plusieurs jours que je galère pour faire passer ma fenêtre principale au premier plan (par dessus une boite de dialogue non m consolde dos premier plan [ par DJtef ] Bonjour je voudrais savoir s'il est possible de mettre la consolde dos sous windows toujours au premier plan, même si on clique à côté, qu'elle prenne WS_POPUP et focus [ par vecchio56 ] C'est un problème assez compliqué a expliquer... J'ai remarqué que les menus (obtenus par exemple avec TrackPopupMenu) sont des fenêtre popup (avec le API, fenêtre fille (focus) [ par La Guite ] Bonjour à tous,En C++, API windows.Voila, je développe un programme de traitement d'images (comme paint shop pro). Sauf que pour l'instant, le prog me Recuperer titre de la fenetre en premier plan [ par XKaliBur ] Voila en résumer ce que je veut fair : récupérer la liste des titre des fenetre qui passent en premier plan, pour ça je récupère le handle de la fenet fenêtre basculant en arrière-plan [ par by_rabbit_08 ] Bien le bonjourj'ai une simple question:J'ai une boite de dialogue qui appelle un Thread et qui lui passe en paramètre son handle (de la boite de dial


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales