Ich habe eine MFC-Anwendung mit einigen Bitmaps, Dialogfeldern und Menüs. Derzeit unterstützt es nur eine Bildschirmauflösung (1280x1024). Ich plane, verschiedene Monitorauflösungsunterstützung zu ihm hinzuzufügen. Dazu muss ich verschiedene Bitmaps laden, die Schriftgröße ändern usw. Meine Frage ist, wie diese in einer typischen Windows-Anwendung gehandhabt werden. Verwenden sie eine einzelne Bitmap und dehnen/verkleinern sie entsprechend der Monitorauflösung oder haben sie unterschiedliche Bitmaps in der Ressource und laden sie abhängig von der Auflösung dynamisch? Gibt es dafür eine Standardlösung?Verschiedene Monitorauflösungen unterstützen
Antwort
In der Vergangenheit habe ich ein großes Bild verwendet und entsprechend skaliert.
Stellen Sie sicher, dass die Größe der Menüs und Dialogfelder angepasst wird, aber es gibt Code-Hilfsprogramme in CodeProject, die helfen könnten.
Ich würde sagen, mehrere Ressourcen mit unterschiedlichen Auflösungen zu verwenden. Während Sie die Symbole dynamisch skalieren können, sehen sie wahrscheinlich besser aus, wenn Sie die Größe in einem geeigneten Bildbearbeitungsprogramm ändern.
Menü- und Symbolleistensymbole werden normalerweise mit der gleichen Anzahl von Pixeln angezeigt, unabhängig von der Bildschirmauflösung. Daher nehmen Menüs und Symbolleisten mit zunehmender Auflösung einen kleineren Teil des Bildschirms ein.
Ich glaube nicht, dass es eine Standardmethode gibt, mit verschiedenen Auflösungen zu arbeiten, wenn Bitmaps betroffen sind.
Ich würde auch sicherstellen, dass Ihre Anwendung mit Windows DPI-Skalierung funktioniert. Dies könnte eine bessere Alternative sein, wenn auf Displays mit höherer Auflösung gearbeitet wird, anstatt die Anwendung neu zu entwerfen, um eine bestimmte Auflösung zu erreichen.
Die Skalierung von Bitmaps sieht schlecht aus (sie größer zu machen wird immer schlecht aussehen und sie kleiner machen, hängt von der Quelle ab). Wenn möglich, sehen Sie, ob Sie Ihre große Bitmap aus mehreren kleineren Bitmaps zusammenstellen können, die sich gut skalieren lassen. Viele Male ist es ziemlich einfach, ein Bitmap zu erstellen, das in eine Richtung schön skalieren kann. Zum Beispiel, wenn Sie einen Rahmen um etwas machen wollen, schneiden Sie es, anstatt eine Bitmap zu verwenden, wie ein Tic-Tac-Toe Board in 9 Teile. die vier Eckstücke bleiben in ihrer ursprünglichen Größe, die oberen und unteren Teile strecken sich horizontal, die linke und rechte vertikal, und die Mitte geht in beide Richtungen (wenn es überhaupt verwendet wird).
- 1. Verschiedene Bilder für verschiedene Dimensionen
- 2. Kann Androide mehrere Sprachen unterstützen?
- 3. Mock-Objekte, die Verkettungsmethoden unterstützen
- 4. Warum unterstützen Arrays IList?
- 5. Kann Writeln Unicode unterstützen?
- 6. Welche Websites unterstützen U2F?
- 7. Nicht Hover-Funktion unterstützen?
- 8. Unterstützen Cython-Erweiterungstypen Klassenattribute?
- 9. Mocha-kompatible Geräte unterstützen
- 10. Unterstützen Doxygen-Konfigurationsdateien Variablen?
- 11. g ++ Standards unterstützen
- 12. Unterstützen Eigenschaften Vererbung?
- 13. Autolayout vs. verschiedene XIB für verschiedene Formfaktoren?
- 14. Best Practice und wie RealmList zu implementieren ist, die verschiedene Arten von Objekten unterstützen müssen
- 15. Ist es möglich, Android-App verschiedene Version mit verschiedenen apk zu unterstützen?
- 16. Gibt es Datenbanken, die Protokollpuffer unterstützen?
- 17. Kann MySQL gleichzeitige Abfragen pro Verbindung unterstützen?
- 18. Django/Raven/Sentry: verschiedene Logger für verschiedene DSNs
- 19. unterstützen JavaScript-Eigenschaftsdeskriptoren benutzerdefinierte Attribute?
- 20. Unterstützen statische Elemente die Speichereffizienz?
- 21. Warum unterstützen keine Nummern .dup?
- 22. Welche Programmiersprachen können Mutationstests unterstützen?
- 23. webkit CSS unterstützen welche Browser?
- 24. Unterstützen Codec für Android-Gerät
- 25. Visual C++ 2010 Atomarten unterstützen?
- 26. Unterstützen alle J2ME-Telefone JavaScript?
- 27. Kann Parkett gleichzeitige Schreibvorgänge unterstützen?
- 28. Unterstützen SVG-Dokumente benutzerdefinierte Datenattribute?
- 29. Sollte ich ASP.NET 1.1 unterstützen?
- 30. Wird IE9 bedingte Kommentare unterstützen?