GUI Rand.

  • Guten Abend,
    in den letzten Tagen ist mir aufgefallen, dass Programme wie "AVAST!" oder z.b "Aeria Ignite" einen runde,transparanten Rand haben.
    Nun wäre meine Frage, ob es möglich ist diesen Rand auch in AutoIt Gui's einzufügen. Wann ja wie geht sowas GDIPlus ?

    Bilder vom Rand

    Spoiler anzeigen
  • Hallo, runde Ecken habe ich mal mit:

    $GUICORNERS=30 -> musst halt probieren!

    hinbekommen

    MfG

  • Für die runden Ecken sind DLL-Calls zuständig:

    Spoiler anzeigen
    [autoit]

    ISetState(@SW_SHOW) ; Zeigt das leere GUI-Fenster
    _GuiRoundCorners($hGui, 0, 0, 30, 30)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
    $msg = GUIGetMsg()

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

    If $msg = -3 Then Exit
    WEnd

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

    Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
    Local $XS_pos, $XS_ret, $XS_ret2
    $XS_pos = WinGetPos($h_win)
    $XS_ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $XS_pos[2], "long", $XS_pos[3], "long", $i_x3, "long", $i_y3)
    If $XS_ret[0] Then
    $XS_ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $XS_ret[0], "int", 1)
    EndIf
    EndFunc ;==>_GuiRoundCorners

    [/autoit]

    ist nicht von mir habe ich in meiner Anfangszeit irgendwo gefunden. Wenn du die Gui im PopUpstil selbst erzeugst sieht es besser aus. Allerdings musst du dann auch das Schliessen-Icon selbst einfügen. Schau dir dazu meinen MP3-Player an, ich verwende dort zwar keine runden Ecken wäre aber schnell eingefügt:

    [autoit]

    Global $idfrmMain = GUICreate($sProgTitel & $sProgVer, $iWidht, $iHeight, IniRead($sLiz, "Pos", "x", "20"), IniRead($sLiz, "Pos", "y", "20"), BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), $WS_EX_CONTROLPARENT)
    _GuiRoundCorners($idfrmMain, 0, 0, 30, 30)

    [/autoit]

    mfg autoBert

  • "ganz" zufrieden bin ich mit der lösung noch nicht, trotzdem habe ich es soweit schonmal eingefügt danke :)

    Bild vom derzeitigen aussehen:

    Spoiler anzeigen