![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Stammuser
![]() Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
|
Mit SetDialogFont kann man ja einen neuen Zeichensatz für die Dialogelemente setzen.
Meine Fragen: 1.) Gibt es auch eine Möglichket den aktuell eingestellten Font zu ermitteln? 2.) Wie kann man den Systemfont ermitteln? Gruß Fränki
__________________
Gruß Fränki Hobbyprogrammierer in XProfan(11.2)X2, Win7(32) Home, Win7(64) Home, XP Pro. Meine Homepage Geändert von Fraenki (10.02.2012 um 23:50 Uhr) |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Also den Systemfont kann man so ermitteln:
Code:
$H windows.ph
Proc GetSystemFont
Declare phkResult&, lpcbData&, lplf#, hLogFont&
IfNot ~RegOpenKeyEx(~HKEY_CURRENT_USER, "Control Panel\Desktop\WindowMetrics", 0, ~KEY_READ, Addr(phkResult&))
IfNot ~RegQueryValueEx(phkResult&, "MessageFont", 0, 0, 0, Addr(lpcbData&))
Dim lplf#, lpcbData&
IfNot ~RegQueryValueEx(phkResult&, "MessageFont", 0, 0, lplf#, Addr(lpcbData&))
hLogFont& = External("Gdi32.dll", "CreateFontIndirectW", lplf#)
EndIf
Dispose lplf#
EndIf
~RegCloseKey(phkResult&)
EndIf
Return hLogFont&
EndProc
Proc GetSystemFontName
Declare font&, logfont#, result$
Dim logfont#, 60
font& = GetSystemFont()
~GetObject(font&, 60, logfont#)
result$ = String$(logfont#, 28)
Dispose logfont#
DeleteObject font&
Return result$
EndProc
Proc GetSystemFontSize
Declare font&, logfont#, result&
Dim logfont#, 60
font& = GetSystemFont()
~GetObject(font&, 60, logfont#)
result& = LONG(logfont#, 0)
If result& < 0
result& = result& * -1
EndIf
result& = result& - 3
Dispose logfont#
DeleteObject font&
Return result&
EndProc
Print GetSystemFontName()
Print GetSystemFontSize()
WaitKey
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de Geändert von Frabbing (11.02.2012 um 19:30 Uhr) Grund: Message statt Caption |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Eine weitere Methode, die ich bevorzuge ist:
Code:
$H windows.ph Declare font&, mem# Dim mem#, 280 font& = ~GetStockObject(~SYSTEM_FONT) If font& ~GetObject(font&, 280, mem#) Print "System" Print "Name: " + String$(mem#, 28) Print "Größe: " + Str$(Int(Abs(Long(mem#, 0)))) Print "Handle: $" + Hex$(font&) Print "" EndIf font& = ~GetStockObject(~DEFAULT_GUI_FONT) If font& ~GetObject(font&, 280, mem#) Print "Gui-Font" Print "Name: " + String$(mem#, 28) Print "Größe: " + Str$(Int(Abs(Long(mem#, 0)))) Print "Handle: $" + Hex$(font&) Print "" EndIf font& = ~GetStockObject(~ANSI_VAR_FONT) If font& ~GetObject(font&, 280, mem#) Print "Ansi-Font" Print "Name: " + String$(mem#, 28) Print "Größe: " + Str$(Int(Abs(Long(mem#, 0)))) Print "Handle: $" + Hex$(font&) Print "" EndIf font& = ~GetStockObject(~ANSI_FIXED_FONT) If font& ~GetObject(font&, 280, mem#) Print "Fixed Ansi-Font" Print "Name: " + String$(mem#, 28) Print "Größe: " + Str$(Int(Abs(Long(mem#, 0)))) Print "Handle: $" + Hex$(font&) Print "" EndIf WaitInput @Thomas: Dein ermittelter Font ist bei mir der für die Fenster-Titelleisten. ![]() In Dialogen ist der Ansi-Font aktiv.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (11.02.2012 um 12:48 Uhr) |
|
|
|
|
|
#4 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Damit ist der "SystemFont", den der aktuelle Style nutzt, aber nicht gefunden
Bei mir kommt korrekter Weise: Segoe UI in der grösse 9 Bei Dir kommt: System in der grösse 16! Da würde mir schlecht werden Aber vielleicht meint er doch den, möglich ist alles.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#5 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Von der Logik und vom Namen her sollte ~SYSTEM_FONT aber der System-Font sein. Ist halt manches merkwürdig im Windows-Märchenland.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#6 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Es kommt bei mir jedenfalls ein Font Namens "System", insofern hast Du wohl recht
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
Nunja, Windows ist eben auch schon in die Jahre gekommen. Diese häßliche fette Schrift kommt wohl deshalb als System_Font, weil sie SYSTEM heißt und die voreingestellte Standardschrift in 16-Bit war, denke ich mir. MS hat das dann einfach so beibehalten und nur ein paar neue, schlankere Schriften hinzugefügt und wählt daraus die Standarschrift.
Gruß Volkmar |
|
|
|
|
|
#8 (Direktlink) |
|
Stammuser
![]() Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
|
Mache gerade eine Arbeitspause und hab die vielen Antworten gesehen.
Da ist bestimmt etwas für mich dabei, das teste ich heut Abend mal. Systemfont ??? Ja, habe den Font gemeint den man unter den tiefen von den Systemeigenschaften einstellen kann. Glaub das ist irgendwo unter der Bildschirmanzeige zu finden. Wollte halt nur diesen Font als Standart für meine Programme nehmen. Vielen Dank an alle, Fränki
__________________
Gruß Fränki Hobbyprogrammierer in XProfan(11.2)X2, Win7(32) Home, Win7(64) Home, XP Pro. Meine Homepage |
|
|
|
|
|
#9 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
Da bin ich am Besten mit GUI-Font gefahren, habe aber nie nachgeprüft, ob das bei jedem denkbaren Systemschema auch paßt. Zumindest der Name GrafikUserInterface-Font scheint diese Idee zu unterstützen. Denn wie gesagt, System_Font ist eher das fette Ding aus 16-Bit-Zeiten.
Gruß Volkmar |
|
|
|
|
|
#10 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Hab jetzt GUI-Font und von durch meinen Code ermittelten Font in ein
StringGadget geladen und eine Messagebox aufgerufen. Die Schrift der Messagebox entspricht exact der, die meine Routine ermittelt. Die GUI-Font ist dicker und grösser.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
#11 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Bei mir (XP) passt der von Thoma's Code ermittelte Font keineswegs. Es ist der Font für Titelleisten.
Systemfont ist bei mir der ermittelte Ansi-Font per ~ANSI_VAR_FONT. Die API GetStockObject kann übrigens noch weitere Fonts ermitteln wie ~DEVICE_DEFAULT_FONT, vielleicht ist der es ja bei Thomas.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#12 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
MessageFont statt CaptionFont, dann klappts mit dem Nachbarn
Bei mir unter Win7 sind die Fonts aber gleich, deshalb hab ich es nicht bemerkt. ~ANSI_VAR_FONT sollte total verkehrt sein, seit Win2000 wird durchgehend Unicode in Windows genutzt!
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#13 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
Ja, da scheint es mehrere Varianten zu geben. Scheint fast so, daß je nach eingestelltem Schema andere Fonts verwendet werden. Interessant, diese Sache mal näher zu betrachten.
Gruß Volkmar |
|
|
|
|
|
#14 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
MessageFont sieht gut aus, werde mir die Sache mal merken
Gruß Volkmar |
|
|
|
|
|
#15 (Direktlink) |
|
MoRoGeP-Träger 2011
![]() Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
|
Hier noch was:
Code:
DEF &WM_SETFONT $30
DEF &DEFAULT_GUI_FONT $011
DEF GetStockObject(1) ! "gdi32","GetStockObject"
'----------------------------------------------
VAR GUIFont& = GetStockObject(&DEFAULT_GUI_FONT)
CLS
VAR button&=CREATE("BUTTON",%hwnd,"ABC abc 123 © ® &",10,10,200,30)
SendMessage(Button&,&WM_SETFONT,GUIFont&,1)
WAITINPUT
END
__________________
Gruss, horst Computer werden kleiner und kleiner, bald verschwinden sie völlig. (Ephraim Kishon 1924-2005) http://www.web-treffpunkt.de |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|