Page 1 sur 1

Hauteur de police

Publié : dim. 28/nov./2004 13:10
par Thyphoon
Encore moi

Voici mon problème
Lorsque je charge une police de caractère de taille 30 (ou autre c'est pour l'exemple)
je pensais que 30 était la hauteur de la police de caractère or je remarque que non car si j'affiche une ligne toute les 30 pixels ça recouvre le bas de la ligne supérieur...
Ma question est comment connaitre la hauteur exacte d'une police ?
un truc du même style que TextLength() mais pour la hauteur
je n'ai rien trouvé ni sur 2Dev ni sur PureArea.net

Publié : dim. 28/nov./2004 13:41
par nico

Code : Tout sélectionner

; By Nico

LoadFont (0, "Arial", 30)
chaine.s="Pure Basic"

If OpenWindow(0, 100, 200, 500, 400, #PB_Window_SystemMenu, "Font Test")
  
  Repeat
      EventID.l = WaitWindowEvent()
  
      If EventID = #PB_EventRepaint
        hdc= StartDrawing(WindowOutput())
        If hdc 
          DrawingMode(1)                    
          DrawingFont(UseFont(0))
          
          GetTextExtentPoint32_(hdc,@chaine,Len(chaine),Size.size)
          Debug Size\cx
          Debug Size\cy
          
          Locate(0, 0)
          DrawText(chaine)
          
          Locate(0, Size\cy)
          DrawText(chaine)  
          
          Locate(Size\cx, 0)
          DrawText(chaine)         
          
          StopDrawing()                  
        EndIf
        
    EndIf
  
  Until EventID = #PB_EventCloseWindow
EndIf

Publié : dim. 28/nov./2004 14:59
par Thyphoon
ça marche super !! Merci beaucoup !! :)
Juste une question quel est l'interet du parametre hdc ?
c'est juste par curiosité

Publié : dim. 28/nov./2004 15:59
par nico
HDC représente le contexte périphérique dans lequel la police est sélectionnée, donc la fonction permet de travailler directement avec le support sans se soucier de la police choisi.

:)

Publié : dim. 28/nov./2004 21:10
par Thyphoon
Merci nico !! :P