Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Kein Audiogerät
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 129
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10.02.2012, 23:44   #1 (Direktlink)
Stammuser
 
Benutzerbild von Fraenki
 
Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
Standard SetFont

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)
Fraenki ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2012, 01:35   #2 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 12:31   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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
Schnell hingeschrieben, darum besser die LOGFONT-Struktur benutzen als einfach einen Bereich.

@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)
Frabbing ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 12:45   #4 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 14:24   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2012, 14:32   #6 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 14:48   #7 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
Standard

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
Volkmar ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 17:21   #8 (Direktlink)
Stammuser
 
Benutzerbild von Fraenki
 
Registriert seit: 05.01.2012
Ort: Landkreis Miltenberg
Alter: 48
Beiträge: 358
Cool

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

Fraenki ist offline   Mit Zitat antworten
Alt 11.02.2012, 17:32   #9 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
Standard

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
Volkmar ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 18:02   #10 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 11.02.2012, 18:35   #11 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 19:07   #12 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 19:10   #13 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
Standard

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
Volkmar ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 19:14   #14 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
Standard

MessageFont sieht gut aus, werde mir die Sache mal merken

Gruß Volkmar
Volkmar ist gerade online   Mit Zitat antworten
Alt 11.02.2012, 19:31   #15 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Beitrag

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)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2