2009-05-12 7 views
8

Je crée un programme qui affiche un popup à certains moments (comme certains clients de chat par exemple) sur lequel l'utilisateur peut cliquer. Cependant, je ne veux pas enlever l'accent de l'application actuelle.Win32, C++: Création d'une fenêtre contextuelle sans déplacement de focus

La façon dont je le fais maintenant est en utilisant un HWND avec WS_POPUPWINDOW et en minimisant puis en restaurant la fenêtre. Cependant, cela détourne l'attention de l'application actuelle. Mettre au premier plan ou cacher et montrer une fenêtre ne l'a pas fait apparaître au premier plan. Je voudrais pouvoir continuer à utiliser un HWND pour pouvoir utiliser d'autres éléments dans cette fenêtre, mais je n'ai aucune idée de comment l'utiliser au premier plan sans détourner le focus.

J'utilise win32 et C++.

Répondre

21

Pour afficher sans activer:

ShowWindow(hwnd, SW_SHOWNOACTIVATE); 

Pour augmenter sans activer:

SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); 
Questions connexes