Question

Est-il possible de créer un modeless boîte de dialogue en C ++ MFC qui reste toujours au-dessus des autres fenêtres de l'application? Je pense un peu comme la boîte de dialogue Rechercher dans Visual Studio 2005 -. Où il reste sur le dessus, mais vous pouvez toujours modifier le texte sous-jacent

(Si cela fait une différence, ce n'est pas MDI, il est une application en fonction de dialogue)

Était-ce utile?

La solution

De Nish :

  

Rendre votre séjour dialogue sur

     

Avez-vous pas vu des programmes qui ont   une option "toujours rester-on-top"? bien   la chose incroyable est que vous pouvez   rendre votre séjour dialogue sur le dessus avec juste   une ligne de code. Tout simplement la   ligne suivante dans votre classe de dialogue de   fonction OnInitDialog ().

SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
     

En fait ce que nous faisons est d'utiliser   les SetWindowPos fonction pour changer   l'ordre Z de notre fenêtre de dialogue. nous   rendre notre séjour dialogue au-dessus de tous   d'autres fenêtres en le déplaçant vers le haut   de l'ordre Z. Maintenant, même lorsque vous   activer une autre fenêtre, notre fenêtre   restera au-dessus. Mais je vous conseille   pour vous assurer que vous savez exactement ce que vous   faites quand vous faites cela, car il   pourrait embêter les gens s'ils ne peuvent pas obtenir   votre fenêtre de la route quand ils   faire cela.

Comme vous l'avez mentionné dans les commentaires, la ligne ci-dessus rend la fenêtre assis sur le dessus de chaque application. Vous aurez besoin de faire

SetWindowPos(&this->wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

Pour une fenêtre assis sur le dessus de votre seule application.

-Adam

Autres conseils

La réponse acceptée échoue pour Windows 7 ou au-dessus. (Ou peut-être son moi) Mais faire la boîte de dialogue pop-up comme modales au lieu de l'enfant résout. Il se positionne désormais la fenêtre de dialogue principale WRT mais vous pouvez écrire du code pour limiter partout. Utilisation de la frontière ou pas barre supérieure en fait une simple fenêtre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top