Bonjour,
Sauriez-vous comment éviter que les tailles de polices utilisé dans une application WD s'agrandissent quand l’utilisateur à son écran réglé sur "agrandissement à 125%" dans la résolution ?
Merci d'avance
Bonjour,
Sauriez-vous comment éviter que les tailles de polices utilisé dans une application WD s'agrandissent quand l’utilisateur à son écran réglé sur "agrandissement à 125%" dans la résolution ?
Merci d'avance
Je ne sais pas si on peu l'éviter, mais le raisonnement me paraît étonnant. Si l'utilisateur à choisi d'avoir des polices à 125% de la taille de base, c'est sûrement qu'il a fait ce choix en connaissance de cause, problème de vue peut être. Pourquoi vouloir aller à son encontre ?
Sous Windev, tu as des options d'ancrage sur tous les champs qui permettent de palier, sans trop de difficultés à ce genre de cas. Il serait préférable d'adapter tes formulaires pour gérer cela, il me semble.
Non. Dans mon cas précis c'est un réglage foireux des écrans, mais au-quels je ne veut rien modifier...effectivement c'est un choix. Mais j'aimerais quand même que l'appli reste "esthétique" dans ces conditions.
y-a-t-il moyen de savoir dans quel mode on est ?
Ceci devrait faire l'affaire :En mode normal c'est 96x96.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 dc est un entier système dc = API("gdi32", "CreateICA", "Display", Null, Null, Null) SI PAS dc ALORS Erreur(ErreurInfo()) SINON LOGPIXELSX est un entier = 88 LOGPIXELSY est un entier = 90 dpix est un entier = AppelDLL32("gdi32", "GetDeviceCaps" , dc, LOGPIXELSX) dpiy est un entier = AppelDLL32("gdi32", "GetDeviceCaps" , dc, LOGPIXELSY) AppelDLL32("gdi32","DeleteDC",dc) Info(dpix + " x " + dpiy) FIN
Merci pour ce code. Je l'ai implémenté dans mes champs en RTF.
En faite, j'ai remarqué qu'uniquement le contenu des champs en RTF est agrandi. Tout le reste, non.
Merci !
Bonjour,
Il suffit de cocher une case dans la description de fenêtre :
Onglet IHM -> Affichage en grandes polices -> La fenêtre s'affiche à la même taille.
et bien non ... cette option était déjà activé.
Le "problème" concerne vraiment que les champs RTF.
Merci en tout cas !
Pour votre information, ce n'est pas normal. Je l'ai testé sur du RTF et le texte reste à la même taille.
Après, je ne saurais pas vous en dire plus sur votre cas, vous avez peut-être mal testé.
Les captures ci-jointes ont été faites avec un Exe WD18 32 bits sous Seven, dans une même session à 150%.
On notera que PC Soft eux-même ne se soucient pas de gérer correctement le 125% ou 150% (voir la barre de formatage). Donc il est conseillé de cocher cette option en règle général.
les captures ne sont pas convaincantes ? un Arial 9 et un 6 ...
Bien vu, je me suis contenté de taper un texte dans un champ sur lequel je n'avais rien fait, mais j'ai pas regardé la taille de la police par défaut.
Je suppose que PC Soft a géré ça comme un cochon. A vous de leur signaler le bug. Personnellement ça ne me concerne pas, n'utilisant pas les champs RTF.
Comme ils n'ont pas réellement la main sur le champ RTF, il est possible qu'ils n'aient aucun moyen de corriger ça, maisça vautquand mêmele coup de réclamer.
PS. Peut-être une piste ? http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
PPS. Pas qu'une piste, une solution :
Usage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PROCEDURE gRTFSansZoom(chChamp) nHdc est entier système nDpiX est entier nHdc = API("user32", "GetDC", 0) SI nHdc <> 0 ALORS nDpiX = API("gdi32", "GetDeviceCaps", nHdc, 88) // LOGPIXELSX API("user32", "ReleaseDC", 0, nHdc) FIN SendMessage(Handle(chChamp), 0x400 + 225, 100 * 96 / nDpiX, 100) // EM_SETZOOM
Ou dans le code d'init du champ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part gRTFSansZoom(SAI_Toto)
Code : Sélectionner tout - Visualiser dans une fenêtre à part gRTFSansZoom(MoiMême)
Merci pour tes réponses, mais ta procédure ne fonctionne pas chez moi ?
Le texte n'est jamais aussi petit que les autres champs.
Moi je fais donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 dc est un entier = AppelDLL32("gdi32","CreateICA","Display",Null,Null,Null) SI dc ALORS LOGPIXELSX est un entier = 88 LOGPIXELSY est un entier = 90 nbpx est un entier = AppelDLL32("gdi32","GetDeviceCaps" , dc , LOGPIXELSX) nbpy est un entier = AppelDLL32("gdi32","GetDeviceCaps" , dc , LOGPIXELSY) AppelDLL32("gdi32","DeleteDC",dc) FIN SI nbpx>96 ET nbpy>96 ALORS MoiMême = RTFVersTexte(MoiMême) RTFSélection(MoiMême,rtfCouleur,Blanc,1,Taille(MoiMême)) FIN
Chez moi ça fonctionne et ça corrige l'affichage sans toucher aux données.
Je ne vois pas pourquoi ça ne fonctionnerait pas, vu que la fonctionnalité date de Win2k.
Je posterai un projet de test et des captures pour que ça soit plus clair. Dès que j'aurai le temps.
(et je ne comprends pas le code ci-dessus : il passe le texte en blanc quand il y a un zoom ?)
Voici le projet de démo.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager