WinMove

  • Win Move

    Gibt es eine Möglichkeit bei Winmove die position so zu setzten dass es so wäre als wäre nichts eingegeben wie bei GUICreate("...",100,100) ist es Jetzt ja auch in der Mitte bei jedem?

    Ich will ein Setup für eines meiner programme schreiben und da muss nach der Progressbar die GUIGrößer werden und da dachte ich an WinMove

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 415, 59)
    $Progress1 = GUICtrlCreateProgress(0, 0, 433, 73)
    Sleep(1000)
    GUICTrlSETData(-1,100)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $Progress1 = 100
    Sleep(3000)
    GUICTRlSETSTATE($Progress1,$GUI_HIDE)
    WinMove("Form1","",-99,-99,500,500)
    EndSwitch
    WEnd

    [/autoit]
  • guicreate('test', 100, 100,@desktopwidth/2, @desktopheight/2)

    Wenn, dann so :P :

    [autoit]

    guicreate('test', 100, 100,(@desktopwidth-100)/2, (@desktopheight-100)/2)

    [/autoit]

    Und statt Default kannste auch -1 schreiben...

  • Das hatte ich auch schon probiert aber bei mri war das dann blöderweise bei -1 also eine Einheit hinter dem Bildschirmrand :(

  • Hi Simon.

    Warum willst du ein Setup selbst schreiben?

    Es gibt doch viele gute Setup Programme im Internet.
    Diese Setup Programm unterscheiden sich nicht mit denen, wenn du z.B. ein Spiel installierst.

    Bei den meisten kannste sogar ein eigenes Design machen. U.s.w.


    MfG

  • Ich weis aber ich will ein eigenes machen bin auch schon sehr weit

    Mal als vorschau!

    (c) simon

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 415, 59,Default,100)
    $Progress1 = GUICtrlCreateProgress(0, 0, 433, 73)
    Sleep(1000)
    GUICTrlSETData(-1,100)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $Progress1 = 100
    Sleep(3000)
    GUICTRlSETSTATE($Progress1,$GUI_HIDE)
    WinMove("Form1","",Default,150,500,500)
    GUICTRlCreateLabel("",0,0,500,100)
    GUISEtBkColor(0xFFFF99)
    ;--------------------------------Header-----------------------------------------------------------------------------------------------------------
    GUICtrlSETBkColor(-1,0xCDAD00)
    GUICTRlCReateLabel("SB IE 1.0 Setup",150,20,200,30)
    GUICTrlSETFont(-1,20)
    GUICTrlSETBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICTrlSETColor(-1,0x000000)
    GUICTRlCreateLabel("",0,100,500,2)
    GUICTRlSetBkColor(-1,0x000000)
    ;-----------------------------EndHeader-----------------------------------------------------------------------------------------------------------
    $willkommenlabel = GUICTRlCreateLabel("Willkommen beim Setup für den SB IE",10,120,400)
    GUICtrlSEtFont($willkommenlabel,12)
    $versionsnummer = GUICTRlCreateLabel("Es wird die Version 1.0 installiert",10,140)
    $asistentslabel = GUICTrlCreateLabel("Der Asistent führt sie durch die einzelnen Schrite",10,180,400)
    $ersterweiterbutton = GUICTRlCreateButton("Weiter",370,445,60,25)
    $ersterausbutton = GUICTrlCreateButton("Abbrechen",430,445,60,25)
    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $ersterausbutton
    Exit
    Case $ersterweiterbutton
    GUICTRlSETSTAte($willkommenlabel,$GUI_HIDE)
    GUICtrlSetSTate($versionsnummer,$GUI_HIDE)
    GUICTRlSEtSTATE($asistentslabel,$GUI_HIDE)
    GUICTRlSETSTate($ersterausbutton,$GUI_HIDE)
    GUICTRlSETSTATE($ersterweiterbutton,$GUI_HIDE)
    $agblabel = GUICTRlCreateLAbel("AGBs",10,110)
    $agbs = GUICTrlCreateEdit("Datei nicht im Internet selbst anbieten" & @CRLF & @CRLF & "Autor ist Simon Buchner" & @CRLF & @CRLF & "(c) by Simon Buchner" & @CRLF & @CRLF & "Mit klicken auf weiter werden diese Agbs akzeptiert",10,140,470,250)
    $zweiterweiterbutton = GUICTRlCreateButton("Weiter",370,445,60,25)
    $zweiterabbrechenbutton = GUICTrlCreateButton("Abbrechen",430,445,60,25)
    While 1
    Switch GUIGETMSG()
    Case -3
    Exit
    Case $zweiterabbrechenbutton
    Exit
    Case $zweiterweiterbutton
    GUICTrlSetSTate($agblabel,$GUI_HIDE)
    GUICTRlSEtSTate($agbs,$GUI_HIDE)
    GUICtrlSETSTate($zweiterabbrechenbutton,$GUI_HIDE)
    GUICTrlSetSTate($zweiterweiterbutton,$GUI_HIDE)
    While 1
    Switch GUIGETMSG()
    Case -3
    Exit
    EndSwitch
    WEnd
    EndSwitch
    WENd
    EndSwitch
    WEnd
    EndSwitch
    WEnd

    [/autoit]

    Bin aber noch im Arbeiten
    Schätze aber das eine halbe woche noch reicht :) :) :)

  • @ChaosKeks
    Nein kann man nicht! Man kannst das fenster nähmlich auch aus dem Bildschirmrand bewegen, also -!MUsst mal überlegen bevor du Postest ;)

    Ehh ok das zweite war in dem zusammenhang falsch! Aber ich meinte das du das bei GuiCreate immer mit -1 regeln kannst... Außerdem ist deine Lösung die falsche, also was willstu von mir? Guck doch mal nach.. das Fenster wird mit Default nicht in die Mitte gesetzt sondern die obere, linke Ecke!! so wollte das Simon genau genommen nicht also "ÜBERLEG DOCH MAL BEFOR DU POSTEST"..

  • Ich wollte eigentlich das das Pogramm bei jedem in der Mitte ist aber es geht leider von einer Ecke aus wenn ich bei winmove zweimal default hab und deshalb habe ich das top mit einer kordinate fersehen

    thx an alle

  • Was spricht gegen das:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 415, 59)
    $Progress1 = GUICtrlCreateProgress(0, 0, 433, 73)
    Sleep(1000)
    GUICTrlSETData(-1,100)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $Progress1 = 100
    Sleep(3000)
    GUICTRlSETSTATE($Progress1,$GUI_HIDE)
    WinMove("Form1","",(@desktopwidth-500)/2, (@desktopheight-500)/2,500,500)
    EndSwitch
    WEnd

    [/autoit]
  • Hi zusammen,

    sorry wenn ich den Thread nochmal aus der Versenkung hole, aber genau so eine Funktion habe ich gesucht, um per Button eine GUI zentrieren zu können.

    Aber eins verstehe ich nicht und nach dem Grundsatz wer nicht fragt bleibt dumm ...

    wieso müssen noch 500 subtrahiert werden ?(

    Den Lösungsansatz mit @desktopwidth/2 usw hatte ich schon ...

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    WinMove("Form1","",(@desktopwidth-500)/2, (@desktopheight-500)/2)

    [/autoit] [autoit][/autoit] [autoit][/autoit]


  • Du musst die Hälfe der Fensterbreite und Höhe subtrahieren.

    Wenn das Fenster 500 hoch und breit ist, musst du 250 subtrahieren.

    Ansonsten wird das Fenster nicht ganz in der Mitte angezeigt, weil ja von der linken oberen Ecke der GUI gesetzt wird.

    [autoit]

    Global $Height = 500, $Width = 500, $hWnd

    [/autoit][autoit][/autoit][autoit]

    $hWnd = GUICreate("Form1", $Width, $Height)

    [/autoit][autoit][/autoit][autoit]

    WinMove("Form1","",(@desktopwidth - $Width/2)/2, (@desktopheight - $Height/2)/2)]

    [/autoit]
    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%