Question

Mes besoins du programme afin de maximiser arbitrairement une fenêtre sur le bureau en cours. Je réalise cela en appelant ShowWindow(hWnd, SW_MAXIMIZE), où hWnd est le HWND de la fenêtre, je veux optimiser. Lorsque cette ligne de code exécute, la fenêtre en question (ici, le Bloc-notes) ressemble à ceci:

text alt

Tout semble bien, à l'exception du fait que la fenêtre n'a pas été positionné correctement, à savoir la fenêtre semble être quelques pixels à bas, et la barre de titre ne semble pas « aplaties » comme il se doit. Par rapport à la façon dont il devrait ressembler lorsque le bouton Maximize est cliqué, le problème est clairement visible:

text alt

Quelqu'un sait pourquoi ce problème se produit, et ce que je peux faire pour y remédier?

Était-ce utile?

La solution

Dire la fenêtre se maximiser pourrait contourner certains ajustements internes que le programme fait quand il maximise via une commande de menu système. Pour en cliquant sur le bouton Emulate maximize, envoyez un commande SC_MAXIMIZE :

SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0);

Autres conseils

Antoher façon d'utiliser SetWindowPos (); Par exemple, vous avez HWND handleWnd;

RECT rcWnd;
GetWindowRect(handleWnd,&rcWnd);
SetWindowPos(handleWnd,WHND_TOP,rcWnd.left,rcWnd.top,(rcWnd.right-rcWnd.left),(rcWnd.bottom-rcWnd.top),SWP_SHOWWINDOW);

Alors, vous avez obtenu votre position précédente, placer des fenêtres sur le dessus de Z et spectacle

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