Position

  • Hallo.

    Wie schaut es damit aus, das mal ein GUI rechtsbündig am Monitor (Auflösung unbekannt) ausrichtet bzw. unten ein Gui ausrichtet, genau über der Taskleiste ( ca. 1,5 cm von unten).
    Möchte nämlich gerne ien Gui rechtsbündig ausrichten, ein anderes unten. Also zwei verschiedene Gui's.

    Kann mir da jemand helfen?

    LG Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hier mal ein Bsp.:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    AutoitSetOption("GUIResizeMode",802)
    Dim $minWidth = 464, $Width = 635, $minHeight = 232, $Height = 456
    Dim $x, $y, $PosX = 192, $PosY = 113, $change = 0
    #Region ### START Koda GUI section ### Form=d:\koda\winmove.kxf
    $Form1 = GUICreate("Form1", $Width, $Height, $PosX, $PosY)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")
    $Group1 = GUICtrlCreateGroup("Position", 16, 16, 200, 117)
    $bLiOb = GUICtrlCreateButton("Links Oben", 28, 40, 75, 20, 0)
    GUICtrlSetOnEvent(-1, "bLiObClick")
    $bReOb = GUICtrlCreateButton("Rechts Oben", 131, 40, 75, 20, 0)
    GUICtrlSetOnEvent(-1, "bReObClick")
    $bLiUn = GUICtrlCreateButton("Links Unten", 28, 97, 75, 19, 0)
    GUICtrlSetOnEvent(-1, "bLiUnClick")
    $bMitte = GUICtrlCreateButton("Mitte", 79, 70, 75, 20, 0)
    GUICtrlSetOnEvent(-1, "bMitteClick")
    $bReUn = GUICtrlCreateButton("Rechts Unten", 131, 97, 75, 20, 0)
    GUICtrlSetOnEvent(-1, "bReUnClick")
    $clGr1 = GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Größe ändern (+/- Pixel)", 232, 16, 200, 117)
    $Label1 = GUICtrlCreateLabel("Breite:", 249, 42, 34, 17)
    $Label2 = GUICtrlCreateLabel("Höhe:", 249, 75, 33, 17)
    $iWidth = GUICtrlCreateInput("", 332, 39, 65, 21)
    $iHeight = GUICtrlCreateInput("", 332, 72, 65, 21)
    $bChange = GUICtrlCreateButton("Ändern", 267, 103, 130, 20, 0)
    GUICtrlSetOnEvent(-1, "bChangeClick")
    $clGr2 = GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

    Func AForm1Close()
    Exit
    EndFunc

    Func bChangeClick()
    $x = GUICtrlRead($iWidth)
    $y = GUICtrlRead($iHeight)
    If ($Width + $x) < $minWidth Then
    MsgBox(16, '',"Breitenänderung nicht möglich!"& @LF &"Mindestbreite wird unterschritten.")
    Return
    EndIf
    If ($Height + $y) < $minHeight Then
    MsgBox(16, '',"Höhenänderung nicht möglich!"& @LF &"Mindesthöhe wird unterschritten.")
    Return
    EndIf
    WinMove($Form1, "", $PosX, $PosY, $Width+$x, $Height+$y)
    _size()
    EndFunc

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

    Func _size()
    Local $size
    $size = WinGetPos("Form1")
    $PosX = $size[0]
    $PosY = $size[1]
    $Width = $size[2]
    $Height = $size[3]
    EndFunc

    Func bLiObClick()
    WinMove($Form1, "", -1, -1)
    _size()
    EndFunc

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


    Func bLiUnClick()
    WinMove($Form1, "", -1, @DesktopHeight-$Height)
    _size()
    EndFunc

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


    Func bMitteClick()
    WinMove($Form1, "", (@DesktopWidth-$Width)/2, (@DesktopHeight-$Height)/2)
    _size()
    EndFunc

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


    Func bReObClick()
    WinMove($Form1, "", @DesktopWidth-$Width, -1)
    _size()
    EndFunc

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


    Func bReUnClick()
    WinMove($Form1, "", @DesktopWidth-$Width, @DesktopHeight-$Height)
    _size()
    EndFunc

    [/autoit]
  • BugFix,

    Coooool.

    Was noch fehlt wäre Maximal-Fenster und Hintergrund transparent. :rock:
    Und na klar "immer im Vordergrund (das ist wichtig). LOL

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (14. Mai 2007 um 18:58)

  • um nen fenster zu maximieren empfehle ich @SW_MAXIMIZE...kannste entweder like this einbasteln...

    [autoit]

    GUISetState (@SW_SHOW,$gui_handle)
    GUISetState (@SW_MAXIMIZE,$gui_handle)

    [/autoit]

    oder einfach per WinSetState maximieren(da isses ein wenig umständlicher....hintergrund transparent??? kein plan vielleicht gibts dazu nen style im englischen forum...würde mich aber schon interessieren_>bei lösung bitte hier posten ;)
    mhhh ich hatte mal nen schickes script was immer im vordergrund war..wie ich das gemacht hab....tja ich glaube ich habe mit WinActivate gearbeitet aber so genau weiß ich das nicht mehr...schon länger her...find das script leider auch nicht mehr...naja vll hat ja jemand noch die lösung perat ;)

    der snoozer

    • Offizieller Beitrag

    Hi,

    du wolltest doch, dass es auf der Taskbar liegt.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Global $height = 200
    Global $width = 300

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

    GUICreate("My GUI", $width, $height, @DesktopWidth - $width, @DesktopHeight - _taskbarheight() - $height + 30)
    GUISetState(@SW_SHOW) ; will display an empty dialog box

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

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

    Func _taskbarheight()
    Local $value = Opt("WinTitleMatchMode", 4)
    Local $Pos = WinGetPos("classname=Shell_TrayWnd")
    Opt("WinTitleMatchMode", $value)
    Return $Pos[3]
    EndFunc ;==>_taskbarheight

    [/autoit]

    So long,

    Mega