Hallo, nach dem Wechsel von 5.71 LTS x64 nach 5.72 LTS x64 hat sich folgender Fehler gezeigt:
Bei der Version 5.71 so es noch so aus:
So soll es auch aussehen, natürlich bei gleichem Quellcode!
Kann das jemand bestätigen bzw. Fred melden!
Reinhard
Anzeigeproblem mit der 5.72 LTS X64
Re: Anzeigeproblem mit der 5.72 LTS X64
So weit ich weiss wurde auf den neuen Standard Zeichensatz von Windows umgestellt
Mit SetGadgetFont(#PB_Default, FontID) an Anfang kannst/must du den passenden Font laden.
Mal im englischen Forum suchen
Mit SetGadgetFont(#PB_Default, FontID) an Anfang kannst/must du den passenden Font laden.
Mal im englischen Forum suchen
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Anzeigeproblem mit der 5.72 LTS X64
Hallo, leider bringt das nicht den gewünschten Erfolg.
Leider ist mein Englisch zu schlecht für das Englische Forum.
Bleibe ich halt erstmal bei der älteren Version.
Reinhard
Leider ist mein Englisch zu schlecht für das Englische Forum.
Bleibe ich halt erstmal bei der älteren Version.
Reinhard
Re: Anzeigeproblem mit der 5.72 LTS X64
Etwas gefunden...
Code: Alles auswählen
;-TOP
; http://www.purebasic.fr/german/viewtopic.php?t=13491&start=5
Procedure.s GetFontNameFromGadget(gadget)
Protected *otm.OUTLINETEXTMETRIC
Protected bsize.l,Font.l,hWnd.l
Protected FontName.s
hWnd = GadgetID(gadget)
Font = GetGadgetFont(gadget)
hdc = GetDC_(hWnd)
Font = SelectObject_(hdc,Font)
bsize = GetOutlineTextMetrics_(hdc,0,0)
If bsize = 0
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn
EndIf
*otm = AllocateMemory(bsize)
*otm\otmSize = bsize
GetOutlineTextMetrics_(hdc,bsize,*otm)
FontName = PeekS(*otm+*otm\otmpFamilyName)
FreeMemory(*otm)
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn FontName
EndProcedure
Procedure.s GetFontStyleFromGadget(gadget)
Protected *otm.OUTLINETEXTMETRIC
Protected bsize.l,Font.l,hWnd.l
Protected FontStyle.s
hWnd = GadgetID(gadget)
Font = GetGadgetFont(gadget)
hdc = GetDC_(hWnd)
Font = SelectObject_(hdc,Font)
bsize = GetOutlineTextMetrics_(hdc,0,0)
If bsize = 0
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn
EndIf
*otm = AllocateMemory(bsize)
*otm\otmSize = bsize
GetOutlineTextMetrics_(hdc,bsize,*otm)
FontStyle = PeekS(*otm+*otm\otmpStyleName)
FreeMemory(*otm)
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn FontStyle
EndProcedure
Procedure.l GetFontSizeFromGadget(gadget)
Protected *otm.OUTLINETEXTMETRIC
Protected bsize.l,Font.l,hWnd.l
Protected FontSize.l , val.f
hWnd = GadgetID(gadget)
Font = GetGadgetFont(gadget)
hdc = GetDC_(hWnd)
Font = SelectObject_(hdc,Font)
bsize = GetOutlineTextMetrics_(hdc,0,0)
If bsize = 0
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn
EndIf
*otm = AllocateMemory(bsize)
*otm\otmSize = bsize
GetOutlineTextMetrics_(hdc,bsize,*otm)
val.f = (*otm\otmTextMetrics\tmHeight-*otm\otmTextMetrics\tmInternalLeading)
FontSize = Int(Round((val * 72 / GetDeviceCaps_(hdc,#LOGPIXELSY)),1))
FreeMemory(*otm)
SelectObject_(hdc,Font)
ReleaseDC_(hWnd,hdc)
ProcedureReturn FontSize
EndProcedure
;-TOP
Enumeration Windows
#Main
EndEnumeration
Enumeration Gadgets
EndEnumeration
Enumeration Status
#MainStatusBar
EndEnumeration
Global FontPB_V570 = LoadFont(#PB_Any, "Microsoft Sans Serif", 9)
SetGadgetFont(#PB_Default, FontID(FontPB_V570))
Procedure Main()
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, "Window" , #PB_Window_SystemMenu)
ButtonGadget(0, 10, 10, 120, 25, "Default")
Info$ + "Font name: " + GetFontNameFromGadget(i) + #CR$
Info$ + "Font style: " + GetFontStyleFromGadget(i) + #CR$
Info$ + "Font size: " + Str(GetFontSizeFromGadget(i)) + #CR$ + #CR$
Debug Info$
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndProcedure : Main()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Anzeigeproblem mit der 5.72 LTS X64
Kann es sein, das das nicht mehr "up-to-date" ist... ?FontSize = Int(Round((val * 72 / GetDeviceCaps_(hdc,#LOGPIXELSY)),1))
Ich schätze mal, dass man hier die eingestellten DPI als Berechnungsparameter braucht... ?!
Nur eine Frage...
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: Anzeigeproblem mit der 5.72 LTS X64
Hi, kann man den irgendwie herausbekommen, welche Schriftart dort gewechselt wurde?mk-soft hat geschrieben:So weit ich weiss wurde auf den neuen Standard Zeichensatz von Windows umgestellt
Mit SetGadgetFont(#PB_Default, FontID) an Anfang kannst/must du den passenden Font laden.
Mal im englischen Forum suchen
Reinhard
Re: Anzeigeproblem mit der 5.72 LTS X64
Siehe ... Etwas funden ...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Anzeigeproblem mit der 5.72 LTS X64
Hallo, sorry für die späte Antwort.mk-soft hat geschrieben:Siehe ... Etwas funden ...
Dein Hinweis hat mir geholfen.
Danke nochmal.
Reinhard