Police de caractères de la barre de titre
Le
SAISAS

Bonjour,
j'ai réussi à récupérer la taille de la barre de titre, mais pas sa police
de caractère. Lorsque mon utilisateur personnalise sa police avec l'option
"extra large", le rendu est très mauvais et surtout l'utilisateur n'arrive
pas à lire mon texte.
Quelqu'un aurait-il une solution.
Merci.
j'ai réussi à récupérer la taille de la barre de titre, mais pas sa police
de caractère. Lorsque mon utilisateur personnalise sa police avec l'option
"extra large", le rendu est très mauvais et surtout l'utilisateur n'arrive
pas à lire mon texte.
Quelqu'un aurait-il une solution.
Merci.
SAISAS a écrit :
Tu peux récupérer la police de la barre de titre dans la clé
CaptionFont de la branche :
HKEY_CURRENT_USERControl PanelDesktopWindowMetrics
c'est une donnée de type REG_BINARY, l'offset du nom de la police semble
être 0x1c, et la chaine de caractère en Unicode.
Tu as également les clés :
HKEY_CURRENT_USERControl PanelAppearanceSchemes
et
HKEY_CURRENT_USERControl PanelAppearanceNew Schemes
liées à %Windir%system32ThemesUI.dll
Mais il y a peut être plus simple en regardant ici :
http://vb.mvps.org/samples/project.asp?id=ncmetrics
il y a des pistes par les API's. En regardant
http://vb.mvps.org/samples/code/NCMetrics.zip
qui permet de récupérer ce genre d'informations :
en utilisant entre autre SystemParametersInfo, et en ce qui me concerne,
je retombe bien sur mes pieds :
(CaptionHeight = 25) + (BorderWidth = 1) = 26 (cad pareil que
GetSystemMetrics(SM_CYCAPTION)
et
(CaptionHeight = 35) + (BorderWidth = 1) = 36
Peut être cette API fonctionnera t-elle chez toi
--
Cordialement,
Jacques.
j'ai réussi à récupérer l'info avec SystemParametersInfo, mais je trouve
cela curieux ... même si cela marche.
Call SystemParametersInfo(SPI_GETICONTITLELOGFONT, Len(fontInfo),
fontInfo, 0)
Fsz = -3 - fontInfo.lfHeight
Je ne sais ni pourquoi il me rajoute 3 à la taille de police, ni elle est
avec un signe négatif. Mais cela me donne le résultat.
Cordialement.
"Jacques93" a écrit :
Je pense que cela est lié aux différences entre les notions de LOGFONT
et STDFONT. Un autre exemple ici :
Si tu modifie Form_Load, comme ceci, tu devrais obtenir la taille réelle
de la police :
Look XP : Trebuchet MS 9.75 arrrondi à 10)
Look W2K: Tahoma 8.25 arrondi à 8
Private Sub Form_Load()
Dim cNC As New FontInfo1
cNC.GetMetrics
Set lblSample(0).Font = cNC.Font(Me.hDC, captionfont)
lblSample(0).Caption = CInt(cNC.Font(Me.hDC, captionfont).Size)
[...]
--
Cordialement,
Jacques.
et je pense que j'ai du travail pour choisir la bonne police ...
"Jacques93" a écrit :