GDI+ auf unsichtbarer GUI

  • moin,

    muss kurz mal was fragen.

    Wie bekomme ich es hin, dass ich auf einer unsichtbaren GUI sichtbare Rects zeichnen kann. Sprich man sieht halt nur das Rect.

    Ich hab das mal irgendwo gelesen, finde das aber nicht mehr und von alleine krieg ich´s einfach nicht hin.

    Hoffe einer kann mir helfen

    LG
    MrB

    Einmal editiert, zuletzt von MrB (24. Juli 2012 um 11:42)

  • Spoiler anzeigen
    [autoit]

    #cs
    GDI+ Example - Draw on Transparent & Click-Through GUI
    by SEuBo, 24.12.2010

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

    http://www.elitepvpers.de/forum/autoit/9…hirm-malen.html

    /edit for a simple rectangle
    #ce

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

    #include <Misc.au3>
    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>

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

    ;Variablen deklarieren
    Local $hGUI, $hGraphics, $hPen

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

    ;GDI+ initialisieren, ESC als HotKey festlegen
    _GDIPlus_Startup()
    HotKeySet("{ESC}", "_Exit")

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

    ;Transparente GUI erstellen
    $hDummy = GUICreate("") ; Dummy GUI, damit richtiges nicht in Taskleiste auftaucht.
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST, $WS_EX_TRANSPARENT), $hDummy)
    GUISetBkColor(0xABCDEF, $hGUI)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0xABCDEF, 255)

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

    ;Graphic-Objekt, Pinsel und Backbuffer erstellen und GUI anzeigen
    $hPen = _GDIPlus_PenCreate(0xFFFF0000, 4) ; Roten Pinsel mit Breite von 4 px.
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    GUISetState()

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

    _GDIPlus_GraphicsDrawRect($hGraphics, 100, 100, 200, 200, $hPen)

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

    While Sleep(10)
    WEnd

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_PenDispose($hPen)
    GUIDelete($hGUI)
    GUIDelete($hDummy)
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Das Script ist nicht von mir. Funktioniert aber trotzdem... 8o