Auto-Hide-Taskleiste nicht angezeigt wird, wenn meine Anwendung maximiert wird

StackOverflow https://stackoverflow.com/questions/137005

  •  02-07-2019
  •  | 
  •  

Frage

Meine Anwendung zeichnet alle seine eigenen Fensterrahmen und Dekorationen. Es arbeitet mit Windows-Taskleisten fein, die zum automatischen Ausblenden gesetzt sind, außer wenn meine Anwendungsfenster maximiert wird. Die Taskleiste wird nicht „aufrollen“. Es verhält sich normalerweise, wenn ich die Anwendung nicht maximiert, auch wenn auf den unteren Rand des Bildschirms den ganzen Weg bemessen. Es funktioniert sogar normal, wenn ich nur die Größe des Fensters die gesamte Anzeige aufzunehmen (als ob es maximiert wurde).

War es hilfreich?

Lösung

Ich fand das Problem. Mein Antrag wurde die Handhabung der WM_GETMINMAXINFO Nachricht, und wurde überschreiben die Werte in den Parameter MINMAXINFO Datensatz. Die Werte, die in der Aufzeichnung waren, wurden um 7 (Randbreite), um die Bildschirmpixelauflösung aufgeblasen. Das macht Sinn, dass, wenn maximiert, drückt er die Grenzen des Fensters über den sichtbaren Teil des Bildschirms. Er setzte auch die ptMaxPosition (Punkt, dass das Fenster Ursprung gesetzt wird, wenn maximiert) bis -7, -7. Mein Antrag wurde Einstellung, die auf 0,0 und die maximale Höhe und Breite genau die Bildschirmauflösung Größe (nicht aufgeblasen). Nicht sicher, warum dies geschieht; es wurde von einem Vorgänger geschrieben. Wenn ich diesen Code kommentieren und ändern Sie nicht die MINMAXINFO Struktur, die automatisch ausblenden funktioniert.

Wie, warum, ich bin nicht ganz sicher. Es ist möglich, dass der Nachweis für popping eine „automatisch ausgeblendet“ Task-Leiste oben ist für den Umgang mit WM_MOUSEMOVE Nachrichten in den Mechanismus angeschlossen, und nicht für WM_NCMOUSEMOVE. Mit meiner Anwendung verursachen die Maximierungs meine Grenze zu parken direkt am unteren Rand des Bildschirms, hätte ich WM_NCMOUSEMOVE Ereignisse worden zu erzeugen; mit der MINMAXINFO allein gelassen, hätte ich WM_MOUSEMOVE gewesen zu erzeugen.

Andere Tipps

Dieses davon abhängt, ob ‚Halten Sie die Taskleiste auf andere Fenster‘ auf die Taskleiste Eigenschaften geprüft. Wenn es aktiviert ist, dann wird die Taskleiste angezeigt werden.

Aber nicht programmatisch versucht sein, diese Einstellung zu ändern, auf einem Endanwender Maschine nur an Ihren Bedürfnissen anzupassen, ist es als unhöflich und schlechte Praxis. Ihre Anwendung sollte passen, was Umwelt sie wird eingesetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top