1 GUI 2 verschiende BkColors

  • Hi zusammen
    Ich versuche gerade in einer GUI zb die eine Hälfte schwarz und die andere weiß zu machen.
    Hab dies auch schon geschafft mit GDIPlus indem ich in die ein Hälfte ein gefülltes Rechteck gezeichnet habe.
    Allerdings habe ich jetzt das Problem, dass sobald man das Fenster zum Teil außerhalb des Bildschirms zieht und dann wieder rein das gefüllte Rechteck verschwindet.
    Ich könnte es ja einfach neu zeichnen, allerdings habe ich auf beiden Seiten Labels welche dann "verschwinden".

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>

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

    Opt("GuiOnEventMode",1)

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

    Global $mainWin

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

    $mainWin = GUICreate("test",500,500)
    GUISetBkColor(0x000000)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($mainWin)
    $hBrush1 = _GDIPlus_BrushCreateSolid(0xFFDDDDDD)
    _GDIPlus_GraphicsFillRect($hGraphic, 250, 0, 500, 500,$hBrush1)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Exit()
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_BrushDispose($hBrush1)
    _GDIPlus_Shutdown ()
    Exit
    EndFunc

    [/autoit]


    MfG

    Einmal editiert, zuletzt von Milla (5. Dezember 2010 um 15:34)

  • Hallo Milla,

    ich würde es so lösen:

    Spoiler anzeigen
    [autoit]

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

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

    Dim $idLabel1[5], $idLabel2[5]
    #region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("Form1", @DesktopWidth, @DesktopHeight-60)
    GUISetBkColor(0xFFFFFF)
    GUICtrlSetDefColor(0x222222)
    For $i = 0 To 4
    $idLabel1[$i] = GUICtrlCreateLabel("Label " & $i, 5, 50+$i * 25, 60, 18)
    Next
    $hGuiChild = GUICreate("", @DesktopWidth/2, @DesktopHeight-60, @DesktopWidth/2, 0, $WS_CHILD, Default, $Form1)
    GUISetBkColor(0x222222)
    GUICtrlSetDefColor(0xFFFFFF)
    For $i = 0 To 4
    $idLabel2[$i] = GUICtrlCreateLabel("Label " & $i, 5, 50+$i * 25, 60, 18)
    Next
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_SHOW, $hGuiChild)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    mfg autoBert

  • autoBert
    Funktioniert zwar auch wunderbar aber ich bevorzug trotzdem lieber die Lösung mit einer Graphic, da ich dadurch nu 1 GUI hab was meiner Meinung nach übersichtlicher ist.