Seite 1 von 2
Standardfont rausfinden und "fett" setzen
Verfasst: 26.03.2008 00:59
von Delle
Hallo,
wie kann man den aktuell verwendeten Standardfont von PB rausfinden?
Ich möchte ein Gadget mit fetten Text versehen (und natürlich im Standardfont).
Re: Standardfont rausfinden und "fett" setzen
Verfasst: 26.03.2008 01:21
von Kiffi
Delle hat geschrieben:wie kann man den aktuell verwendeten Standardfont von PB rausfinden?
GetGadgetFont()?
Grüße ... Kiffi
Verfasst: 26.03.2008 01:31
von Delle
Ok das liefert aber "nur" die FondID eines bereits vorhandenen Gadgets zurück.
Ich kann damit ja nicht den Font einfach nochmal fett einladen:
LoadFont(1,GetGadgetFont(#Bla),10, #PB_Font_Bold)
Verfasst: 26.03.2008 01:43
von PMV
Da die Font-Lib selber keine möglichkeit bietet, bereits geladene Fonts zu
ändern, wirste wohl auf WinAPI umsteigen müssen.
Um deine Frage aber so zu beantworten, wie du sie wirklich gestellt hast:
gibt den aktuellen Font zurück ... damit wirst wohl dann API-Prozeduren
füllen müssen.
MFG PMV
Verfasst: 26.03.2008 01:50
von Delle
Naja das liefert ja auch nur wieder ne ID zurück... ideal wäre halt der Name des Defaultfonts sowie der Größe.
Aber wie Du schon sagt: Ohne API geht da wohl nix...
Verfasst: 08.07.2008 21:35
von kayfr72
Ich habe mal die GetGadgetSize.pb vom CodeArchiv etwas umgbaut.
Code: Alles auswählen
Procedure.s GetGadgetTextFont(GadgetNr.l)
;
;
;
;
; FontName$ = GetGadgetTextFont()
;
hGadget = GadgetID(GadgetNr)
If hGadget
hFont = SendMessage_(hGadget,#WM_GETFONT,0,0)
hDC = GetDC_(hGadget)
If hFont
SelectObject_(hDC,hFont)
EndIf
mem= AllocateMemory(33)
If GetTextFace_(hDC,32,@mem)
Result$= PeekS(@mem)
EndIf
ReleaseDC_(hGadget,hDC)
EndIf
ProcedureReturn Result$
EndProcedure
win =OpenWindow(0,0,0,800,600,".....",#PB_Window_SystemMenu)
Font =LoadFont(0,"Arial",14)
SetGadgetFont(#PB_Default,Font)
CreateGadgetList(WindowID(0))
String$="ok"
TG = TextGadget(0,100,100,80,40,"ok")
Debug GetGadgetTextSize(0)
Debug GetGadgetTextFont(0)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
quit =1
EndSelect
Until quit =1
End
vielleicht hilft das!
Verfasst: 08.07.2008 21:38
von edel
kayfr72 hat geschrieben:vielleicht hilft das!
Vielleicht solltest du erstmal deinen Code selber testen.
Re: Standardfont rausfinden und "fett" setzen
Verfasst: 09.07.2008 08:21
von Danilo
Delle hat geschrieben:Ich möchte ein Gadget mit fetten Text versehen (und natürlich im Standardfont).
Auf Windows dürfte PB standardmässig "MS Sans Serif" in der Größe 8
verwenden. GetStockObject_(#ANSI_VAR_FONT) sollte der Standardfont sein,
mit dem PB alle Gadgets initialisiert.
Verfasst: 09.07.2008 12:17
von edel
PB duerfte eher #DEFAULT_GUI_FONT verwenden, alles andere weicht
ja von dem eingestellten Font ab.
Verfasst: 09.07.2008 19:45
von kayfr72
Also hab das Proggi nochmal überarbeitet und genau das Gadget gesetzt mit SetGadgetFont(x,Font) und genaz dieser Wert wurde durch GetGadgetTextSize(x) auch wieder ausglesen.Ich werde aber mal die anderen Werte mal überprüfen Vielleicht ändert dich dann noch etwas an der Rückgabe des PB_Default die da nicht genau ist.
Der SytemFont bei XP und Vista ist Tahoma 8 und bei den VorgängerVersionen wie richtig gesagt der MS Sans Serif.Haupsächlich ging es ja um die Größe des Systemfont ,da ja der Name bei LoadFont leer gelassen werden konnte.