Frage

Ich bin ein Direct3D-Anwendung zu schreiben und nach dem seltsamen Fehler wie zu bemerken, Anti-Aliasing auftritt, selbst wenn es ausgeschaltet wurde und der Mauszeiger nicht mit den gleichen Koordinaten wie sich die Dinge Schlange entdeckte ich, dass beim Erstellen eines Fensters die Parameter Breite und Höhe zählen die Grenze. Das Programm wurde Rendern einer 800x600 Grafikausgabe an ein Fenster der gleichen Größe, sondern auch wegen der Grenzen wurde sie in 792x566 Rechteck zerquetscht. Ich habe die Größe des Fensters erhöht zu kompensieren, aber das funktioniert nicht, wenn das System einen Randstil andere des Standard-XP-Stil verwendet. (Classic-Stil, zum Beispiel)

Gibt es eine Möglichkeit zu sagen, was die Rahmenbreite und Höhe werden dauern, bis ich das Fenster erstellen?

War es hilfreich?

Lösung

Es klingt wie Sie für die GetSystemMetrics Funktion suchen. Zum Beispiel wird die Breite Rand in Pixeln, die durch

zurück
GetSystemMetrics(SM_CXBORDER)

ADDED: Für die Gesamtgröße werden Sie zusammen die verschiedenen „Stücke“ hinzufügen müssen der Nicht-Client-Bereich:. Grenze, Rahmengrößen, Titelleisten, usw.

Andere Tipps

Eine andere Möglichkeit wäre die D3D Oberfläche, um sicherzustellen, ist die gleiche Größe wie die Client-Rechteck Größe ( GetClientRect () ). Dann wissen Sie, Sie auf die entsprechende Größe machen werden und schon gar nicht über die Breite des Menüs zu kümmern, Grenzen, usw.

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