pls help: GUI transparent menu image , -NO buttons

  • pls help: GUI transparent menu image , -NO buttons

    hallo ,

    [EDIT] OK es geht , siehe last post [/EDIT] 8-)


    [EDIT] frage verfeinert [/EDIT]

    moechte GUI-menu-Image ; Es soll 3 Links/Funktionen aufrufen ; Es soll nur das Menu-Image gezeigt werden ; Es sollen Keine WINDOWS-KANTIGEN-3D-Buttons dargestellt werden , sondern nur drei "sensitive bereiche" wie im beispoiel zu sehen ; welche Func brauche ich ;

    hier ist ein Beispiel-menu-Image , x=180px width y=230px height :
    [Blockierte Grafik: http://a6000000.bplaced.net/AM/AMMenuTrans3003.jpg
    http://a6000000.bplaced.net/AM/AMMenuTrans3003.jpg

    die drei farbigen bereiche sind keine 3D - buttons , sollen aber was ausloesen , wenn man draufklickt , und egal welche der drei bereiche geklickt werden , dann ist das bild weg = einfach

    etwa so:

    3001. welche AutoIt Funktionen sollte ich lesen?
    3002. muss ich mehrere Teil - Images verwenden und zusammen-setzen?


    bitte um Tips


    ------------------
    PS:
    habe paar beispiel - scripts gefunden ; vielleicht ist die loesung enthalten ; ich weiss es nicht ;

    3030. soll ich EzSkin_1-2-3 nehmen?
    http://www.autoit.de/ ']http://www.autoitscript.com/forum/index.php?showtopic=41319[/url]
    [Blockierte Grafik: http://img381.imageshack.us/img381/2370/ez1ps8.jpg]
    http://img381.imageshack.us/img381/2370/ez1ps8.jpg ;
    3031. kann ich mit EzSkin_1-2-3 funktionen ohne buttons aufrufen ? kann man die buttons weglassen oder ueberdecken ?


    3040. eine floating toolbar gibt es hier
    http://www.autoit.de/ ']http://www.autoitscript.com/forum/index.ph…topic=41099&hl=[/url]
    http://www.autoitscript.com/forum/index.php?showtopic=41099&hl=
    [Blockierte Grafik: http://img387.imageshack.us/img387/5042/clipboard01pw5.jpg
    http://img387.imageshack.us/img387/5042/clipboard01pw5.jpg ;
    3041. sind dort die noetigen funktionen enthalten?


    3050. AutoIt KODA FormDesigner , damit?
    [Blockierte Grafik: http://www.autoitscript.com/fileman/users/…/koda_small.gif
    http://www.autoitscript.com/fileman/users/…/koda_small.gif
    http://www.autoit.de/ ']http://www.autoitscript.com/fileman/users/…formdesign.html[/url]
    http://www.autoitscript.com/fileman/users/…formdesign.html


    3060. in AutoIt - HELP
    GUICtrlCreatePic
    ;----- example 2 , existiert
    "
    GUICtrlCreatePic(@Systemdir & "\oobe\images\merlin.gif",0,0, 0,0)
    "
    3061. merlin.gif is transparent , aber ich seh ausser bewegen keine action zum aufrufen
    [Blockierte Grafik: http://a6000000.bplaced.net/AM/merlin_moove.jpg
    http://a6000000.bplaced.net/AM/merlin_moove.jpg


    ------------------

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

    2 Mal editiert, zuletzt von a6000000 (29. Februar 2008 um 15:55)

  • das menu bild is doch zu sehen , das schwarze mit den drei "sensitiven bereichen" , die nicht wie eckige buttons aussehen ,

    dass heisst , ich will ein (anderes) bild nicht mit eckigen standart buttons verschandeln

    die drei farbigen bereiche sind keine 3D - buttons , sollen aber was ausloesen , wenn man draufklickt

    in html waere das ein Bilder-Link , jetzt frag ich mich wie das in autoit geht

    ach so das TRANSPARENT bezieht sich nur auf die bereiche ausserhalb der runden ecken , oder beim help beispiel merlin eben auf den transparenten hintergrund.

    alles klar?

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Hab ichs richtig verstanden?
    Du willst ein Hintergrundbild, auf dem 3 Buttons zu sehen sind. Diese sollen klickbar sein, aber nicht verdeckt werden.
    Du setzt also das Bild auf GUISetState($bild,$GUI_DISABLE)
    dann erstellst du Labels an den vorgesehenen Stellen. Diese werden als Buttons verwendet.
    Wenn du sie dann an der richtigen Stelle hast, fügst du nach jedem Label ein GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT) ein, damit sie durchsichtig werden.
    z.B. so: (Hier fehlt nur das Hintergrundbild :) Und die Ecken sind mit API-Calls abgerundet.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    HotKeySet("{ESC}", "_end")

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

    $gui = GUICreate("GUI", 200, 300, -1, -1, $WS_POPUP)
    GUISetBkColor(0x0000FF)
    $labelbutt1 = GUICtrlCreateLabel("",30,40,40,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    $labelbutt2 = GUICtrlCreateLabel("",110,90,40,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    $labelbutt3 = GUICtrlCreateLabel("",88,220,40,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)

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

    ; folgendes löschen, um Labels unsichtbar zu machen:
    GUICtrlSetBkColor($labelbutt1,0xFFFFFF)
    GUICtrlSetBkColor($labelbutt2,0xFFFFFF)
    GUICtrlSetBkColor($labelbutt3,0xFFFFFF)
    ;Ende löschen

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

    _GUICreateRoundRect($gui, 50,50)
    GUISetState()

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

    #include <GUIConstants.au3>

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

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $labelbutt1
    MsgBox(0, '', "Labelbutt1")
    Case $msg = $labelbutt2
    MsgBox(0, '', "Labelbutt2")
    Case $msg = $labelbutt3
    MsgBox(0, '', "Labelbutt3 - Exit")
    Exit
    EndSelect
    WEnd
    #endregion

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

    Func _GUICreateRoundRect($hwnd, $radx=15,$rady=15)
    $pos = WinGetPos($hwnd)

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

    $1 = 0
    $2 = 0
    $3 = $pos[2]
    $4 = $pos[3]
    $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $1, "long", $2, "long", $3, "long", $4,"long",$radx,"long",$rady)

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

    DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $hwnd, "long", $ret[0], "int", 1)
    EndFunc ;==>_GUICreateRoundRect

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

    Func _end()
    Exit(0)
    EndFunc

    [/autoit]
  • wieso "Hintergrundbild"?

    Zitat


    Du willst ein Hintergrundbild, auf dem 3 Buttons zu sehen sind

    .. ich hab heut wohl ein knoten im ausdruck

    also einfach ein window , dass aber keinen rahmen hat und keine standard - buttond zu sehen hat
    das window besteht aus einem zB gif , damit der hintergrund neben den runden ecken durchsichtig - transparent ist

    dann zB drei sensitive bereiche , die was ausloesen ,
    die linkumrahmung wie in html - bilder - links wuerde nicht stoeren , es sollen aber keine windows - buttons angezeigt werden , und beim draufklicken muss auch nicht das aussehen geaendert werden , wuerde aber auch nicht stoeren , dann geht das splash eh weg

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Zitat


    Diese sollen klickbar sein, aber nicht verdeckt werden


    .. was hier verdeckt ? , versteh ich NOCH nicht
    .. jetzt schau ich erstmal die genannten funktions an

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Ja, verdeckt bedeutet:
    Die Buttons sind auf das Bild gemalt, richtig?
    Wenn dann ein Button erstellt wird, liegt der über dem Bild, sodass man den gemalten Button nicht mehr sieht. -> verdeckt.

  • HEY HEY HEYYAAA

    @progandy

    da passiert ja schon was in der richtigen richtung!

    ich studier das ma

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

    Einmal editiert, zuletzt von a6000000 (28. Februar 2008 um 18:31)

  • Zitat


    Die Buttons sind auf das Bild gemalt, richtig?

    NEIN
    es ist einfach nur ein bild mit verschiedenfarbigen pixeln

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • @progandy

    HEYY danke , damit geht es wohl

    nur noch kurz:: kann ich dein blaues fenster ::

    $gui = GUICreate("GUI", 200, 300, -1, -1, $WS_POPUP)
    GUISetBkColor(0x0000FF)

    auch mit der mouse VERSCHIEBEN? dafuer was was veraendern?
    , oder geht nicht , dann brauch ich nicht suchen ?

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Du musst das MouseDown mit WinMove verbinden:
    [ offen ] Popup-GUI verschieben -> POSt #2

    //Edit: Direkt einbauen geht nicht :( Du musst es auf GUIRegisterMsg anpassen, da mein Bsp. nicht im Event-Mode arbeitet:

    Spoiler anzeigen
    [autoit]

    ; in die Gui erstellung
    If Not Isdeclared("WM_LBUTTONDOWN") Then Global Const $WM_LBUTTONDOWN = 0x0201
    GUIRegisterMsg($WM_LBUTTONDOWN, "_PrimeDown")

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

    ;Ans Ende des Skripts:
    Func _PrimeDown($hWnd, $Msg, $wParam, $lParam)
    Local $DifX, $DifY, $MouseData = GUIGetCursorInfo($hwnd)
    Local $WinPos = WinGetPos($hwnd)
    Local $MPos = MouseGetPos()

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

    $DifX = $MPos[0] - $WinPos[0]
    $DifY = $MPos[1] - $WinPos[1]

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

    While $MouseData[2]
    $MPos = MouseGetPos()
    $WinPos = WinGetPos($hwnd)

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

    If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
    WinMove($hwnd, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
    EndIf

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

    Sleep(15)

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

    $MouseData = GUIGetCursorInfo($hwnd)
    WEnd
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von progandy (28. Februar 2008 um 19:22)

  • HEYYAA

    @progandy
    ; so jetzt hab ich es 50/50 , fast super , ABER:
    ; LINE 45::
    ;$n=GUICtrlCreatePic("AMMenuTrans3006.gif",0,0, 180,215)
    ; mit mein background image geht mouse - move nit und ohne background img geht mousemove , aber es sieht nit so aus :(
    ..es koennt alles so einfach sein - isses aba nit ..
    ; wie sollte denn das img eingebunden werden?

    @progandy

    Zitat


    ..
    Du setzt also das Bild auf GUISetState($bild,$GUI_DISABLE)
    ..

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Der Hintergrund muss auch als 1. GUI-Element erstellt werden, nicht als leztes.
    Wenn du es so machst, sollte es gehen:

    [autoit]

    $gui = GUICreate("GUI", 180, 215, -1, -1, $WS_POPUP)
    GUISetBkColor(0x0000FF) ; sonst dialog-grey
    $n=GUICtrlCreatePic("AMMenuTrans3006.gif",0,0, 180,215)
    GUICtrlSetState(-1,$GUI_DISABLE)

    [/autoit]
  • OK OK! closed!

    DANKE , es funzt 8-)

    . . . . . .
    .> KLIENT: ..wieviel kostet mich das?
    .> CHEF: 20 Jahre! zum Glueck haben wir schon vor 20 Jahren angefangen
    . . . . . .

  • Du kannst das Fenster auch einfacher verschiebbar machen ...
    Jedenfalls, wenn Du ein Bild als Hintergrund hast, dann kannst Du es mit '$GUI_WS_EX_PARENTDRAG' machen:

    [autoit]

    $Pic = GUICtrlCreatePic('', 0, 0, 635, 476, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS), $GUI_WS_EX_PARENTDRAG)

    [/autoit]

    Gruß
    Greenhorn


  • Noch zum Schluss: $GUI_WS_EX_PARENTDRAG funzt nicht mit $GUI_DISABLE. Das wird aber benötigt, damit man die "Buttons" noch drücken kann

  • So geht's ... ;)

    Spoiler anzeigen
    [autoit]

    $hWnd = GUICreate('Mein unsichtbarer GUI Button', 170, 215, -1, -1, $WS_POPUP)
    $pic = GUICtrlCreatePic(@ScriptDir & '\AMMenuTrans3003.jpg', 0, 0, 170, 215, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetTip(-1, '... verschieb mich !')
    $btnHidRed = GUICtrlCreateLabel('', 68, 160, 35, 35)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
    GUICtrlSetState(-1, $GUI_ONTOP)
    $btnHidYellow = GUICtrlCreateLabel('', 20, 65, 35, 35)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
    GUICtrlSetState(-1, $GUI_ONTOP)
    $btnHidBlue = GUICtrlCreateLabel('', 115, 20, 35, 35)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
    GUICtrlSetState(-1, $GUI_ONTOP)

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

    GUISetState()

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

    While 1

    $nMsg = GUIGetMsg()

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btnHidRed
    MsgBox(0, '', 'Der rote Button wurde gedrückt.')
    Exit
    Case $btnHidBlue
    MsgBox(0, '', 'Der blaue Button wurde gedrückt.', 2)
    Case $btnHidYellow
    MsgBox(0, '', 'Der gelbe Button wurde gedrückt.', 2)
    EndSwitch

    WEnd

    [/autoit]

    Gruß
    Greenhorn