2017-10-01 6 views
0

Je crée une fenêtre en C++ avec ce code:maximisée fenêtre WS_POPUP passe devant la barre des tâches

HWnd = CreateWindow(wc.lpszClassName, 
    "myapp", 
    WS_POPUP |WS_VISIBLE, 
    10, 10, 1000, 800, 0, 0, hInst, NULL); 

Il semble que je veux, mais quand j'agrandissez avec comme ceci:

ShowWindow(hwnd, SW_SHOWMAXIMIZED); 

alors c'est comme une fenêtre en plein écran pour que la barre des tâches soit cachée. Je pense que c'est parce que c'est une fenêtre POPUP mais c'est comme si je voulais qu'elle apparaisse. Dois-je créer ma propre fonction de maximisation ou y a-t-il un paramètre pour éviter cela?

Merci

+0

Autoriser une fenêtre contextuelle à être agrandie n'est pas approprié. Envisagez d'empêcher l'utilisateur de le maximiser avec GetSystemMenu + EnableMenuItem. Ou gérer WM_GETMINMAXINFO pour limiter les limites à la zone de travail du moniteur. –

Répondre

1

Vous pouvez ajouter WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX style. Si vous voulez que votre fenêtre soit sans légende, vous devrez ajuster la taille de la fenêtre manuellement pour l'adapter à la zone de travail du bureau que vous pouvez interroger en utilisant SPI_GETWORKAREA en spécifiant SystemParametersInfo.

+0

Oui, je ne veux pas de légende, avec SystemParametersInfo C'est facile, merci. – Entretoize