Seite 1 von 2

Fenster zentrieren

Verfasst: 25.11.2007 13:17
von KinkMike
Hallo, ich bin gerade dabei ein Programm zu schreiben und habe folgende Fragen:

1) wie kann ich ein Fenster mit den Maßen 200 x 200 zentriert auf dem Bildschirm darstellen ?

2) Wie kann ich ein Fenster direkt maximiert starte, ohne erst den maximierenbutton zu drücken ?

Ich hoffe ihr könnt mir helfen :)

Achja, ich habe die PB-Verison: 3.30

Verfasst: 25.11.2007 13:31
von ThoPie
zu 1)

Code: Alles auswählen

OpenWindow(#wnd,0,0,200,200,"Titel",#PB_Window_ScreenCentered)
zu 2)

Code: Alles auswählen

OpenWindow(#wnd,0,0,0,0,"Titel",#PB_Window_Maximize)

Verfasst: 25.11.2007 13:34
von mk-soft
Und alles zusammen

Code: Alles auswählen

style = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget
style = style | #PB_Window_ScreenCentered | #PB_Window_Minimize
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 200, "Form1", style)

  Repeat
    event = WaitWindowEvent()
  Until event = #PB_Event_CloseWindow
EndIf

Verfasst: 25.11.2007 14:06
von AND51
Habt ihr überlesen, dass er noch PB 3.30 benutzt? Da gibt es kein #PB_Window_Maximize! :wink:

@ KinkMike:
Das mit dem ScreenCentered müsste es bei dir schon geben.
Und dein Fenster maximiert zu starten geht IMHO nur über die API. Da weiß ich spontan keine Funktion auswendig, aber ich glaube es war ShowWindow_() mit deinem Window-Handle als 1. und einem Flag als 2. Parameter.
Dieser 2. Flag bestimmt, wie das Fenster dargestellt werden soll (also z. B. maximiert).

Verfasst: 25.11.2007 14:30
von RSBasic
@AND51
>Das mit dem ScreenCentered müsste es bei dir schon geben.
Nein, gibt es nicht.

.

Verfasst: 25.11.2007 15:04
von KinkMike
ja, danke erst mal für eure schnelle antworten, doch ich muss leider sagen, dass mir das irg wie nich so ganz weiterhilft, denn das mit dem maximize und screencentere geht bei PB 3.30 nicht

Verfasst: 25.11.2007 15:54
von Thomas
Hab mal nen Code für PB 3.3 getippt:

Code: Alles auswählen

Breite.l = 200
Hoehe.l  = 150

OpenWindow(0, (GetSystemMetrics_(#SM_CXSCREEN) - Breite) / 2, (GetSystemMetrics_(#SM_CYSCREEN) - Hoehe) / 2, Breite, Hoehe, #PB_Window_SystemMenu | #PB_Window_MaximizeGadget, "Window")

ShowWindow_(WindowID(0), #SW_SHOWMAXIMIZED)

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Verfasst: 25.11.2007 16:49
von AND51
RSBasic hat geschrieben:@AND51
>Das mit dem ScreenCentered müsste es bei dir schon geben.
Nein, gibt es nicht.
Ah ok.
Ja dann verbleibt nur noch die Option, wie Thomas es geschrieben hat.
Positionen des Fensters = Bildschirmbreite/höhe durch 2 - Breite bzw. Höhe des Fensters durch 2

Verfasst: 25.11.2007 18:49
von Falko
Anstelle von /2 kannst du auch das SchiftRight >>1 verwenden. Ob
es viel schneller ist, kann ich nicht sagen. Mein Rechner ist zu schnell :mrgreen:

Gruß Falko

Hi

Verfasst: 25.11.2007 19:23
von KinkMike
Ja vielen vielen Dank Thomas, das ist genau das was ich gesucht habe :D