Seite 1 von 1
DesktopWidth() und OpenWindow()
Verfasst: 27.01.2009 01:31
von Delle
Hallo,
weiß jemand warum das Fenster so komisch versetzt ist?
Also das Icon oben klebt etwas zu weit links...
Muss man ev. von DestopWidth() noch etwas abziehen für den Rand oder?
Code: Alles auswählen
ExamineDesktops()
OpenWindow(0,0,0,DesktopWidth(0),DesktopHeight(0),"Test",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_Maximize)
WebGadget(0,0,0,WindowWidth(0),WindowHeight(0),"http://www.purebasic.com")
Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow
[/code]
Verfasst: 27.01.2009 02:35
von Kaeru Gaman
> Muss man ev. von DestopWidth() noch etwas abziehen für den Rand oder?
yup.
die breite und höhe die du angibst sind die inneren maße.
Verfasst: 27.01.2009 02:40
von Delle
Kann man das irgendwie berechnen oder so?
Verfasst: 27.01.2009 02:52
von Kaeru Gaman
mir ist vor längerem irgendwo ne API funktion begegnet, die die werte zurückgibt...
keine ahnung wo und wie die hieß...
muss man immer aktuell machen, weil das von skin zu skin unterschiedlich sein kann.
ich würde erstmal rumprobieren, ob das was bringt, das fenster maximiert zu öffnen und für die Maße Ingore einzusetzen....
ob das dann beim wiederherstellen die maximale größe besitzt.
Verfasst: 27.01.2009 17:34
von Josef Sniatecki
Habs gefunden:
Code: Alles auswählen
#CCHILDREN_TITLEBAR = 5
Structure TITLEBARINFO
cbSize.l
rcTitleBar.RECT
rgstate.l[#CCHILDREN_TITLEBAR+1]
EndStructure
pti.TITLEBARINFO\cbSize = SizeOf(TITLEBARINFO)
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
GetTitleBarInfo_(WindowID(0),pti)
MessageRequester("","Höhe der Titelleiste: "+Str(pti\rcTitleBar\bottom-pti\rcTitleBar\top),0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
War auf der Homepage von RSBasic zu finden

.
EDIT:
Hier nochmal als praktische Prozedur:
Code: Alles auswählen
Procedure.i GetWindowTitleHeight(Window.i)
#CCHILDREN_TITLEBAR=5
Structure TITLEBARINFO
cbSize.l
rcTitleBar.RECT
rgstate.l[#CCHILDREN_TITLEBAR+1]
EndStructure
Protected PTI.TITLEBARINFO
PTI\cbSize=SizeOf(TITLEBARINFO)
GetTitleBarInfo_(WindowID(Window),@PTI)
ProcedureReturn PTI\rcTitleBar\bottom-pti\rcTitleBar\top
EndProcedure
EDIT: Gillt jedoch nur für die Titelleiste. Für die Länge habe ich keine
Lösung.