Bonjour, je souhaiterais savoir si on peut faire en sorte que la fenetre de son application reste en arrière plan même lorsque qu'on l'active (en cliquant dessus).
Merci
Bonjour, je souhaiterais savoir si on peut faire en sorte que la fenetre de son application reste en arrière plan même lorsque qu'on l'active (en cliquant dessus).
Merci
Une fenête qui reste en arrière plan même quand on l'active ? Tu peux être plus précis s'il te plaît ?
Désolé je pensais être clair, je vais essayer de détailler:
mon application crée une fenetre sur laquelle on peut cliquer pour intéragir, jusque la rien d'extraordinaire. Le problème c'est que lorsqu'on clique dessus elle passe en premier plan comme toutes fenetres windows, ce que j'aimerai (mais je ne suis pas sur que ce soit possible) c'est qu'elle reste derriere les autres fenetres, mais qu'on puisse toujours intéragir avec elle.
Pour illustrer, c'est exactement ce que fait le bureau, si on ouvre des fenetres elles restent devant, meme si on clique sur une icone du bureau, ce qui permet par exemple le glisser/déposer du bureau vers une autre fenetre.
Parce que toutes les fenêtres sont enfant du bureau.Pour illustrer, c'est exactement ce que fait le bureau, si on ouvre des fenetres elles restent devant, meme si on clique sur une icone du bureau ...
Et il y aurait peut etre moyen de se mettre entre le bureau et les autres fenetre pour devenir le parent de celles ci tout en étant enfant du bureau ?
Bonjour,
Hmm, je ne suis pas sûr de mon coup mais en utilisant SetWindowPos avec le flag HWND_BOTTOM (et peut être en combinant avec un ou des flags de uFlags, genre SWP_NOSIZE | SWP_NOMOVE).
cf MSDN : http://msdn.microsoft.com/en-us/libr...45(VS.85).aspx
Simple suggestion (je n'ai pas essayé pour voir si ça fonctionnait) :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); // peut être avec SWP_NOACTIVATE en plus... à voir.
Je dirais faire ça, avec le flag SWP_NOACTIVATE en plus, à chaque fois que la fenêtre reçoit un message WM_ACTIVATE lui signifiant qu'on a cliqué dessus...
Effectivement en faisant ça ça marche:
En fait le SWP_NOACTIVATE ne change rien a priori.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 case WM_ACTIVATE: SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE); break;
J'avais pensé faire un truc comme ça mais je pensais que le fait de la faire passer en arriere plan la désactiverait.
Merci pour votre aide !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager