2016-06-26 8 views
1

Ich schreibe eine wxWidgets (3.1.0) -App, die unter Windows und Mac funktionieren soll. Bei Windows, wenn ich die Skalierung des Textes auf mehr als 100% setze, werden die Größen meiner Steuerelemente durcheinander gebracht. Ich habe ein DPI-Manifest, das besagt, dass meine App dpi-bewusst ist. Ich habe auch die Schriftpixelgröße auf meinen Dialogen eingestellt, und das funktioniert in gewissem Maße. Wenn ich die Größe einiger Elemente aus dem Code festlege, wird die Größe auf die Pixelgröße angepasst, die ich brauche, aber jede Größe, die in der XRC-Datei festgelegt ist, wird vergrößert. Auch wenn ich versuche, die Größe von wxSpinCtrl zu reduzieren, kann es normalerweise auf einen Punkt reduziert werden, aber dann wird nur das Textfeld kleiner und die Schaltflächen bleiben unverhältnismäßig groß. Gibt es also eine Möglichkeit, meiner App zu sagen, dass sie keine Größen skalieren soll und dass alles genau die gleiche Pixelgröße haben soll wie bei einer normalen dpi (trotz der Tatsache, dass meine App bei höheren Auflösungen klein aussieht)?Verhindern, dass die wxWidgets-App Größen mit höherer Auflösung skaliert

+0

Haben Sie versucht, die dpi-Erkennung aus der Manifestdatei zu entfernen? – Igor

+0

@Igor Wenn ich das Manifest dann entferne, verwendet Windows seinen Standardzoom, der alles verschwommen sieht – Milan

+0

Das ist eine sehr merkwürdige Frage, warum genau Sie möchten, dass Ihr Programm * schlecht * auf hohen DPI-Bildschirmen aussieht? Die wirkliche Lösung ist, das Problem zu lösen, was auch immer es ist. Leider ist "alles durcheinander" nicht präzise genug, um zu verstehen, was genau es ist. –

Antwort

0

Es gibt keine Möglichkeit zu verhindern, dass die richtige Skalierung mithilfe der wxWidgets-API angewendet wird, und ich denke nicht, dass sich dies ändern wird, weil es einfach keinen Sinn ergibt.

Allerdings sollte das erneute Erstellen von wxWidgets mit wxHAVE_DPI_INDEPENDENT_PIXELS die Bibliothek dazu verleiten, zu denken, dass das zugrunde liegende grafische Toolkit die Pixelwerte bereits skaliert und sie so daran hindert, es selbst zu tun. Ich habe das nie getestet, aber, AFAICS, sollte dies ergeben, was Sie wollen.

Trotzdem möchte ich wiederholen, dass das, was Sie wollen, völlig falsch ist, und die wirkliche Lösung für dieses Problem ist, es jedem zu erklären, der sich dafür entschieden hat.

+0

Danke, das hat die meisten meiner Probleme gelöst – Milan

Verwandte Themen