2016-06-26 1 views
1

J'écris une application wxWidgets (3.1.0) qui est supposée fonctionner sous Windows et Mac. Sur les fenêtres lorsque je mets la mise à l'échelle du texte à plus de 100%, les tailles de mes contrôles sont complètement ratées. J'ai un manifeste en dpi qui dit que mon application est sensible au dpi. Je définis également la taille de pixel de la police sur mes boîtes de dialogue et cela fonctionne dans une certaine mesure. Lorsque je définis la taille d'un élément du code, il est redimensionné à la taille de pixel dont j'ai besoin, mais toute taille définie dans le fichier xrc est augmentée. Aussi quand j'essaye de réduire la taille de n'importe quel wxSpinCtrl il peut être réduit normalement à un certain point mais alors seulement la zone de texte devient plus petite et les boutons restent disproportionnellement grands. Donc, y a-t-il un moyen de dire à mon application de ne pas changer de taille et de laisser tout exactement la même taille de pixel que sur une résolution normale (malgré le fait que mon application sera petite sur des résolutions plus élevées)?Empêchez l'application wxWidgets de redimensionner les tailles sur des ppp plus élevés

+0

avez-vous essayé d'enlever la sensibilité ppp du fichier manifeste? – Igor

+0

@Igor Si je supprime le manifeste alors Windows utilise son zoom par défaut qui fait tout paraître flou – Milan

+0

Ceci est une question très étrange, pourquoi voudriez-vous consciemment que votre programme semble * mauvais * sur les écrans haute résolution? La vraie solution est de résoudre le problème, quel qu'il soit. Malheureusement "tout foiré" n'est pas assez précis pour comprendre ce que c'est exactement. –

Répondre

0

Il n'y a aucun moyen d'empêcher la mise à l'échelle correcte d'être appliquée en utilisant l'API wxWidgets et je ne pense pas que cela va changer parce que cela ne semble pas avoir de sens. Toutefois, la reconstruction de wxWidgets avec wxHAVE_DPI_INDEPENDENT_PIXELS doit amener la bibliothèque à penser que la boîte à outils graphique sous-jacente met déjà à l'échelle les valeurs des pixels et ainsi l'empêcher de le faire par elle-même. Je n'ai jamais testé cela mais, AFAICS, cela devrait aboutir à ce que vous voulez. Néanmoins, permettez-moi de répéter que ce que vous voulez est totalement faux et que la vraie solution à ce problème est de l'expliquer à celui qui a décidé de le faire.

+0

Merci, cela a résolu la plupart de mes problèmes – Milan