Anwendung mit mehreren Fenstern: Toolwindow aktiv, trotzdem reagiert Hauptfenster auf Anklicken

  • Hallo zusammen,

    ich bin immer noch an meiner Adressenverwaltung, habe derzeit folgendes Problem: wie verhindere ich bei einem aktiven Toolwindow, dass das Hauptfenster anklickbar ist. Dadurch kommt nämlich dieses in den Vordergrund und mein Toolwindow veschwindet. Im Moment behelfe ich mich mit einem Menüeintrag der das letzte Toolwindow bei Bedarf wieder restored.

    Die Toolwindows hab ich so definiert:

    Spoiler anzeigen
    [autoit]


    $hfrmConf = GUICreate($sTitelConf, 350, 200, 355, 355, $DS_MODALFRAME +$DS_SETFOREGROUND + $WS_CAPTION + $WS_SYSMENU + $WS_SIZEBOX, $WS_EX_TOOLWINDOW)

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

    Also obwohl ich mit $DS_MODALFRAME + $DS_SETFOREGROUND erklärt habe ist es weder modal, noch bleibt es vor dem Hauptfenster.

    und hier ein Beispielskript in dem man das Problem nachvollziehen kann

    Spoiler anzeigen
    [autoit]


    ; *** Start added by AutoIt3Wrapper ***
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstantsEx.au3>
    #Include <Misc.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('MUSTDECLAREVARS' ,1)

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

    Global $sTitel = 'Test mehrerer Fenster mit OnEvent'
    Global $sTitelMain = $sTitel & ' Adressstammdaten'
    Global $sTitelDate = $sTitel & ' wichtige Daten'
    Global $sTitelKom = $sTitel & ' Kontaktmöglichkeiten'
    Global $sTitelConf = $sTitel & ' Einstellungen'

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

    Global $out
    If _Singleton($sTitel, 1) = 0 Then
    MsgBox(64, $sTitel, $sTitel & ' ist bereits gestartet',5)
    WinActivate($sTitelMain)
    If _Singleton($sTitelConf,1) Then
    ;WinSetState($sTitelMain,"",@SW_RESTORE)
    ;WinSetState($sTitelConf,"",@SW_RESTORE)
    WinActivate($sTitelConf)
    EndIf
    If _Singleton($sTitelKom,1) Then
    ;WinSetState($sTitelMain,"",@SW_RESTORE)
    ;WinSetState($sTitelKom,"",@SW_RESTORE)
    WinActivate($sTitelKom)
    EndIf
    If _Singleton($sTitelDate,1) Then
    ;WinSetState($sTitelMain,"",@SW_RESTORE)
    ;WinSetState($sTitelDate,"",@SW_RESTORE)
    WinActivate($sTitelDate)
    EndIf
    Exit
    EndIf

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

    Global $hfrmMain ;Hauptfenster Adressstammdaten wird immer sofort erzeugt
    Global $hfrmConf=0 ;Konfigurationsfenster nur bei Bedarf 1mal erzeugt
    Global $hfrmDate=0 ;Fenster wichtige Daten " zum Bearbeiten der Listview
    Global $hfrmKom=0 ;Fenster Kontaktmöglichkeiten
    Global $hfrmAkt=0 ;aktuell geöffnetes Fenster

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

    ;Steuerelemente von $hfrmMain
    Global $hmnuitmFile, $hmnuitmExit, $hmnuitmWindow, $hmnuitmRestore, $nMsg
    Global $hbtnDate, $hbtnKom, $hbtnConf ;Buttons für Zusatzfenster
    Global $bbtnDate, $bbtnKom, $bbtnConf
    Global $hsavbtnDate, $hsavbtnKom ;Sicherung der Buttonsdaten
    Global $hdsicoFirst, $hdsicoPrevious, $hdsicoNext, $hdsicoLast
    Global $hdsicoEdit, $hdsicoInsert, $hdsicoDelete, $hdsicoSave, $hdsicoCancel
    Global $hicoDate, $hicoKom, $hicoMember ;Icons (analog zu Buttons)
    Global $hedtSuch, $hgrpMember, $hedtMember[12], $hedtAnschrift[4] ;Eingabefelder, TABS, List- und TreeViews
    Global $hedtAnrede[2], $hedtFunktion, $hedtBei, $hbtnHP, $hedtHomePage
    Global $hlstvwDaten, $hlstvwKom, $htab, $htab2, $htabItemNotiz
    Global $hedtBem, $htabItemArchiv, $hlstvwArchiv, $hTreeView
    Global $hsplitter1, $hsplitter2 ;evtl. fürs Resizing
    Global $dummy
    Global $iAdrNr ;aktuell angezeigte Adresse für Verknüpfung Master- Detail
    ;jeweils vor Änderungen also beim Einlesen aus DB
    Global $hTreeView2

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

    _Main()

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

    Func _Main()
    Local $iLeft, $iWith, $iNr, $hLine1, $aText, $hImage
    $hfrmMain = GUICreate($sTitelMain, 800, 540, -1, -1, $WS_SIZEBOX + $WS_SYSMENU +$WS_MAXIMIZEBOX +$WS_MINIMIZEBOX)
    $hfrmAkt = $hfrmMain ;zum vergleichen merken
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain')

    $hmnuitmFile = GUICtrlCreateMenu("&Datei")
    $hmnuitmWindow = GUICtrlCreateMenu("&Fenster")
    $hmnuitmExit = GUICtrlCreateMenuItem("Be&enden", $hmnuitmFile)
    GUICtrlSetOnEvent(-1, '_exitMain')
    $hmnuitmRestore = GUICtrlCreateMenuItem("letztes aktives Fenster &restaurieren", $hmnuitmWindow)
    GUICtrlSetOnEvent(-1, '_gotoLastActiveWindow')

    $iNr = -1
    $iLeft = 2
    $iWith = 120

    $iNr = $iNr + 1
    ;$iLeft = $iLeft + $iWith
    $hicoDate = GUICtrlCreateIcon(@ScriptDir & '\edtDateE.ico', $iNr, $iLeft+4, 6, 48, 48)
    GUICtrlSetState(-1, $GUI_DISABLE) ;wichtig damit der darüberliegende Button gedrückt werden kann
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hbtnDate = GUICtrlCreateButton('&wichtige Daten', $iLeft, 2, $iWith, 70, BitOR($WS_CLIPSIBLINGS, $BS_BOTTOM))
    GUICtrlSetOnEvent(-1, '_edtDate')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)

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

    $iNr = $iNr + 1
    $iLeft = $iLeft + $iWith
    ;$iWith = 56
    $hicoKom = GUICtrlCreateIcon(@ScriptDir & '\edtComE.ico', $iNr, $iLeft+4, 6, 48, 48)
    GUICtrlSetState(-1, $GUI_DISABLE) ;wichtig damit der darüberliegende Button gedrückt werden kann
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hbtnKom = GUICtrlCreateButton('Kontakt&möglichkeiten', $iLeft, 2, $iWith, 70, BitOR($WS_CLIPSIBLINGS, $BS_BOTTOM))
    ;GUICtrlSetOnEvent(-1, '_edtKom')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)

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

    $iNr = $iNr + 1
    $iLeft = $iLeft + $iWith
    ;$iWith = 56
    $hicoKom = GUICtrlCreateIcon(@ScriptDir & '\edtGrpE.ico', $iNr, $iLeft+4, 6, 48, 48)
    GUICtrlSetState(-1, $GUI_DISABLE) ;wichtig damit der darüberliegende Button gedrückt werden kann
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hbtnConf = GUICtrlCreateButton('&Einstellungen', $iLeft, 2, $iWith, 70, BitOR($WS_CLIPSIBLINGS, $BS_BOTTOM))
    GUICtrlSetOnEvent(-1, '_edtConf')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)

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

    $hLine1 = GUICtrlCreateGraphic(2, 73, 798, 2, $SS_GRAYFRAME)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT +$GUI_DOCKRIGHT + $GUI_DOCKTOP)

    GUICtrlCreateLabel("&Kurzbezeichnung", 8, 87,140,26)
    GUICtrlSetFont(-1,14)
    GUICtrlSetOnEvent(-1, '_goToSuch')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtSuch = GUICtrlCreateInput("", 150, 87, 225, 26, $ES_UPPERCASE)
    GUICtrlSetFont(-1,14)
    ;GUICtrlSetState(-1, $GUI_FOCUS)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,25) ; um die Eingabe auf 25 Zeichen zu begrenzen

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

    $hgrpMember=GUICtrlCreateGroup("gehört zu &Gruppen:",452, 77,342,40) ; Gruppe MEMBER beginnen
    GUICtrlSetOnEvent(-1, '_goToMember')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    For $i = 0 to 11
    $hedtMember[$i] = GUICtrlCreateInput("", 457+$i*28, 93, 24, 18, $ES_NUMBER)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,3) ; um die Eingabe auf 3 Zeichen zu begrenzen
    Next
    GUICtrlCreateGroup ("",-99,-99,1,1) ; Gruppe MEMBER schliessen

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

    GUICtrlCreateGroup("&Anschrift:",2, 115,265,100) ; Gruppe ANSCHRIFT beginnen
    GUICtrlSetOnEvent(-1, '_goToAdress')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    For $i = 0 to 3
    Select
    Case $i =0
    $aText = "Name 1:"
    Case $i =1
    $aText = "Name 2:"
    Case $i =2
    $aText = "Strasse:"
    Case $i =3
    $aText = "PLZ/Ort:"
    EndSelect
    GUICtrlCreateLabel($aText, 8, 130+$i*20)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtAnschrift[$i] = GUICtrlCreateInput("", 65, 130+$i*20, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,30) ; um die Eingabe auf 30 Zeichen zu begrenzen
    Next
    GUICtrlCreateGroup ("",-99,-99,1,1) ; Gruppe ANSCHRIFT schliessen

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

    GUICtrlCreateLabel("Funktion:", 8, 225)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtFunktion = GUICtrlCreateInput("", 65, 225, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,30) ; um die Eingabe auf 30 Zeichen zu begrenzen
    GUICtrlCreateLabel("bei:", 8, 245)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtBei = GUICtrlCreateInput("", 65, 245, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,30) ; um die Eingabe auf 30 Zeichen zu begrenzen

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

    GUICtrlCreateLabel("Anrede &1:", 8, 270)
    GUICtrlSetOnEvent(-1, '_goToAnrede1')
    ;GUICtrlSetColor(-1,
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtAnrede[0] = GUICtrlCreateInput("", 65, 270, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,30) ; um die Eingabe auf 30 Zeichen zu begrenzen
    GUICtrlCreateLabel("Anrede &2:", 8, 290)
    GUICtrlSetOnEvent(-1, '_goToAnrede2')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtAnrede[1] = GUICtrlCreateInput("", 65, 290, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,30) ; um die Eingabe auf 30 Zeichen zu begrenzen

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

    ;GUICtrlCreateLabel("HomePage:", 8, 315)
    $hbtnHP=GUICtrlCreateButton('Home&Page', 4, 315, 60, 20, BitOR($WS_CLIPSIBLINGS, $BS_BOTTOM))
    GUICtrlSetOnEvent(-1, '_goToHomePage')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    $hedtHomePage = GUICtrlCreateInput("", 65, 315, 200, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetLimit(-1,64) ; um die Eingabe auf 64 Zeichen zu begrenzen

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

    $hsplitter1 = GUICtrlCreateGraphic(270, 125, 4, 205, $SS_BLACKRECT)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT +$GUI_DOCKSIZE + $GUI_DOCKTOP)

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

    $hlstvwDaten=GUICtrlCreateListView("Ereignis | Datum | Bemerkung", 280, 120, 165, 105)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP+$GUI_DOCKRIGHT)
    GUICtrlCreateListViewItem("Geburt|29.02.1992",$hlstvwDaten)
    GUICtrlCreateListViewItem("Eintritt JRK|01.01.1997",$hlstvwDaten)
    $hlstvwKom=GUICtrlCreateListView("Kom-Art |Nummer", 280, 230, 165, 105)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP+$GUI_DOCKRIGHT)
    ; GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP +$GUI_DOCKRIGHT)
    GUICtrlCreateListViewItem("Festnetz|09341/47118899",$hlstvwKom)
    GUICtrlCreateListViewItem("Mobil|0172/47118899",$hlstvwKom)
    GUICtrlCreateListViewItem("Firma|09341/0815",$hlstvwKom)
    GUICtrlCreateListViewItem("Eltern|09341/18899",$hlstvwKom)
    GUICtrlCreateListViewItem("EMAIL|NoReply@NoMail.please",$hlstvwKom)
    GUICtrlCreateListViewItem("EMAIL 2|Urgent@HotMail.Net",$hlstvwKom)

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

    $hsplitter2 = GUICtrlCreateGraphic(2, 338, 448, 4, $SS_BLACKRECT)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP+ $GUI_DOCKHEIGHT)

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

    $htab=GUICtrlCreateTab(2,345,450,127)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $htabItemNotiz = GUICtrlCreateTabItem("Bemerkungen")
    $hedtBem=GUICtrlCreateInput("Erste Zeile"& @CRLF, 2,367,447,102, $ES_AUTOVSCROLL+$WS_VSCROLL+$ES_MULTILINE+$ES_WANTRETURN)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $htabItemArchiv = GUICtrlCreateTabItem("Briefe EMails etc.")
    $hlstvwArchiv=GUICtrlCreateListView("Art |Datum |Anlass |Serienfelder", 2, 367, 447, 102)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP+$GUI_DOCKRIGHT)
    ; GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP +$GUI_DOCKRIGHT)
    GUICtrlCreateTabItem("")
    $dummy=GUICtrlCreateDummy()
    GUICtrlSetState($dummy,$GUI_FOCUS)
    $hTreeView = GUICtrlCreateTreeView(452,120, 345, 345, $GUI_SS_DEFAULT_TREEVIEW,$WS_EX_CLIENTEDGE)
    ;GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKTOP +$GUI_DOCKBOTTOM+$GUI_DOCKWIDTH)
    GUISetState(@SW_SHOW,$hfrmMain)

    $iNr = 0

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

    While 1
    Sleep(1000)
    WEnd
    EndFunc

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

    Func _exitMain()
    ; Switch @GUI_WINHANDLE
    ; Case $hfrmMain
    ; _SQLite_Close()
    ; _SQLite_Shutdown()
    Exit
    ; EndSwitch
    EndFunc

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

    Func _exitConf()
    ; Switch @GUI_WINHANDLE
    ; Case $hfrmConf
    GUISetState(@SW_HIDE,$hfrmConf)
    GUISwitch($hfrmMain)
    GUISetState(@SW_ENABLE,$hfrmConf)
    GUISetState(@SW_UNLOCK,$hfrmConf)
    ;ConsoleWrite("$hfrmConf wird versteckt")
    $hfrmAkt =$hfrmMain ;jetzt wieder im Hauptfenster
    GUISetOnEvent($GUI_EVENT_CLOSE, '',$hfrmConf)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain',$hfrmMain)
    GUICtrlSetOnEvent($hmnuitmExit, '_exitMain')
    _restoreAllBtns()
    ; EndSwitch
    EndFunc

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

    Func _exitDate()
    ; Switch @GUI_WINHANDLE
    ; Case $hfrmDate
    GUISetState(@SW_HIDE,$hfrmDate)
    GUISwitch($hfrmMain)
    GUISetState(@SW_ENABLE,$hfrmMain)
    GUISetState(@SW_UNLOCK,$hfrmMain)
    ;ConsoleWrite("$hfrmDate wird versteckt")
    $hfrmAkt =$hfrmMain ;jetzt wieder im Hauptfenster
    GUISetOnEvent($GUI_EVENT_CLOSE, '',$hfrmDate)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain',$hfrmMain)
    GUICtrlSetOnEvent($hmnuitmExit, '_exitMain')
    _restoreAllBtns()
    ; EndSwitch
    EndFunc

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

    Func _exitKom()
    ; Switch @GUI_WINHANDLE
    ; Case $hfrmKom
    GUISetState(@SW_HIDE,$hfrmKom)
    GUISwitch($hfrmMain)
    GUISetState(@SW_ENABLE,$hfrmMain)
    GUISetState(@SW_UNLOCK,$hfrmMain)
    ;ConsoleWrite("$hfrmKom wird versteckt")
    $hfrmAkt =$hfrmMain ;jetzt wieder im Hauptfenster
    GUISetOnEvent($GUI_EVENT_CLOSE, '',$hfrmKom)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitMain',$hfrmMain)
    GUICtrlSetOnEvent($hmnuitmExit, '_exitMain')
    _restoreAllBtns()
    ; EndSwitch
    EndFunc

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

    Func _disableAllBtns()
    $bbtnDate = GUICtrlGetState($hbtnDate)
    $bbtnKom = GUICtrlGetState($hbtnKom)
    $bbtnConf = GUICtrlGetState($hbtnConf)
    GUICtrlSetState($hbtnDate,$GUI_DISABLE)
    GUICtrlSetState($hbtnKom,$GUI_DISABLE)
    GUICtrlSetState($hbtnConf,$GUI_DISABLE)
    EndFunc

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

    func _restoreAllBtns()
    GUICtrlSetState($hbtnDate,$bbtnDate)
    GUICtrlSetState($hbtnKom,$bbtnKom)
    GUICtrlSetState($hbtnConf,$bbtnConf)
    GUICtrlSetState($hlstvwDaten, $GUI_FOCUS)
    EndFunc

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

    Func _edtConf()
    ;ConsoleWrite("bin bei _edtConf "&@CRLF)
    _disableAllBtns()
    Local $iNr = 0
    if $hfrmConf=0 Then
    ;ConsoleWrite("$hfrmConf wird erzeugt"&@CRLF)
    $hfrmConf = GUICreate($sTitelConf, 350, 200, 355, 355,$DS_MODALFRAME+$DS_SETFOREGROUND+$WS_CAPTION+$WS_SYSMENU+$WS_SIZEBOX,$WS_EX_TOOLWINDOW)
    $htab2=GUICtrlCreateTab(0,0,300,180)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("Gruppenstammdaten")
    $hTreeView2 = GUICtrlCreateTreeView(2,22, 300, 175, $GUI_SS_DEFAULT_TREEVIEW,$WS_EX_CLIENTEDGE)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("")

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

    ; _BaumZeigen($iNr,$hTreeView2,$hTreeView2) ;SingleUser
    ;WinSetOnTop('Confstammdaten', '', 1)
    Else
    ;_GUICtrlTreeView_DeleteAll($hTreeView2) ;MultiUser
    ;ConsoleWrite("$hfrmConf wird gezeigt"&@CRLF)
    ;GUISetState(@SW_SHOW,$hfrmConf)
    EndIf
    $hfrmAkt = $hfrmConf
    GUISetOnEvent($GUI_EVENT_CLOSE, '_gotoLastActiveWindow',$hfrmMain) ;$hfrmMain darf nicht geschlossen werden
    GUICtrlSetOnEvent($hmnuitmExit, '_gotoLastActiveWindow')
    GUISetState($GUI_DISABLE,$hfrmMain)
    ;GUISetState(@SW_LOCK,$hfrmMain)
    GUISwitch($hfrmConf)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitConf',$hfrmConf)
    GUISetState(@SW_SHOW,$hfrmConf)
    ;_BaumZeigen($iNr,$hTreeView2,$hTreeView2) ;MultiUser
    EndFunc

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

    Func _edtDate()
    _disableAllBtns()
    Local $iNr = 0
    Local $tab, $tab0, $tab0OK, $tab0input
    Local $tab1, $tab1combo, $tab1OK
    Local $tab2, $tab2OK, $msg
    Local $tabOK

    if $hfrmDate=0 Then
    ;ConsoleWrite("$hfrmDate wird erzeugt"&@CRLF)
    $hfrmDate = GUICreate($sTitelDate, 400, 200, 355, 355,$DS_MODALFRAME+$WS_CAPTION+$WS_SYSMENU,$WS_EX_TOOLWINDOW)
    ;Beispiel aus Hilfe
    ;GUICreate("My GUI Tab", 250, 150); will create a dialog box that when displayed is centered

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

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

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

    $tab = GUICtrlCreateTab(10, 10, 200, 100)

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

    $tab0 = GUICtrlCreateTabItem("tab0")
    GUICtrlCreateLabel("label0", 30, 80, 50, 20)
    $tab0OK = GUICtrlCreateButton("OK0", 20, 50, 50, 20)
    $tab0input = GUICtrlCreateInput("default", 80, 50, 70, 20)

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

    $tab1 = GUICtrlCreateTabItem("tab----1")
    GUICtrlCreateLabel("label1", 30, 80, 50, 20)
    $tab1combo = GUICtrlCreateCombo("", 20, 50, 60, 120)
    GUICtrlSetData(-1, "Trids|CyberSlug|Larry|Jon|Tylo", "Jon"); default Jon
    $tab1OK = GUICtrlCreateButton("OK1", 80, 50, 50, 20)

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

    $tab2 = GUICtrlCreateTabItem("tab2")
    GUICtrlSetState(-1, $GUI_SHOW); will be display first
    GUICtrlCreateLabel("label2", 30, 80, 50, 20)
    $tab2OK = GUICtrlCreateButton("OK2", 140, 50, 50)

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

    GUICtrlCreateTabItem(""); end tabitem definition
    $tabOK = GUICtrlCreateButton("Schliessen", 160, 150, 100)
    GUICtrlSetOnEvent(-1,"_exitDate")
    GUISetState()
    Else
    ;_GUICtrlTreeView_DeleteAll($hTreeView2) ;MultiUser
    ;ConsoleWrite("$hfrmDate wird gezeigt"&@CRLF)
    ;GUISetState(@SW_SHOW,$hfrmDate)
    EndIf
    $hfrmAkt = $hfrmDate
    GUISetOnEvent($GUI_EVENT_CLOSE, '_gotoLastActiveWindow',$hfrmMain) ;$hfrmMain darf nicht geschlossen werden
    GUICtrlSetOnEvent($hmnuitmExit, '_gotoLastActiveWindow')
    GUISetState($GUI_DISABLE,$hfrmMain)
    ;GUISetState(@SW_LOCK,$hfrmMain)
    GUISwitch($hfrmDate)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitDate',$hfrmDate)
    GUISetState(@SW_SHOW,$hfrmDate)
    ;_BaumZeigen($iNr,$hTreeView2,$hTreeView2) ;MultiUser
    EndFunc

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

    Func _edtKom()
    _disableAllBtns()
    Local $tab, $tab0, $tab0OK, $tab0input
    Local $tab1, $tab1combo, $tab1OK
    Local $tab2, $tab2OK, $msg
    Local $iNr = 0
    if $hfrmKom=0 Then
    ;ConsoleWrite("$hfrmKom wird erzeugt"&@CRLF)
    $hfrmKom = GUICreate($sTitelKom, 400, 200, 355, 355,$DS_MODALFRAME+$WS_CAPTION+$WS_SYSMENU,$WS_EX_TOOLWINDOW)

    ;GUICreate("My GUI Tab", 250, 150); will create a dialog box that when displayed is centered

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

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

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

    $tab = GUICtrlCreateTab(10, 10, 200, 100)

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

    $tab0 = GUICtrlCreateTabItem("tab0")
    GUICtrlCreateLabel("label0", 30, 80, 50, 20)
    $tab0OK = GUICtrlCreateButton("OK0", 20, 50, 50, 20)
    $tab0input = GUICtrlCreateInput("default", 80, 50, 70, 20)

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

    $tab1 = GUICtrlCreateTabItem("tab----1")
    GUICtrlCreateLabel("label1", 30, 80, 50, 20)
    $tab1combo = GUICtrlCreateCombo("", 20, 50, 60, 120)
    GUICtrlSetData(-1, "Trids|CyberSlug|Larry|Jon|Tylo", "Jon"); default Jon
    $tab1OK = GUICtrlCreateButton("OK1", 80, 50, 50, 20)

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

    $tab2 = GUICtrlCreateTabItem("tab2")
    GUICtrlSetState(-1, $GUI_SHOW); will be display first
    GUICtrlCreateLabel("label2", 30, 80, 50, 20)
    $tab2OK = GUICtrlCreateButton("OK2", 140, 50, 50)

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

    GUICtrlCreateTabItem(""); end tabitem definition
    Else
    ;_GUICtrlTreeView_DeleteAll($hTreeView2) ;MultiUser
    ;ConsoleWrite("$hfrmKom wird gezeigt"&@CRLF)
    ;GUISetState(@SW_SHOW,$hfrmKom)
    EndIf
    $hfrmAkt = $hfrmKom
    GUISetOnEvent($GUI_EVENT_CLOSE, '_gotoLastActiveWindow',$hfrmMain) ;$hfrmMain darf nicht geschlossen werden
    GUICtrlSetOnEvent($hmnuitmExit, '_gotoLastActiveWindow')
    GUISetState($GUI_DISABLE,$hfrmMain)
    ;GUISetState(@SW_LOCK,$hfrmMain)
    GUISwitch($hfrmKom)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exitKom',$hfrmKom)
    GUISetState(@SW_SHOW,$hfrmKom)
    ;_BaumZeigen($iNr,$hTreeView2,$hTreeView2) ;MultiUser
    EndFunc

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

    Func _gotoLastActiveWindow()
    ;ConsoleWrite('muss zum Fenster'&$hfrmAkt&@CRLF)
    Switch $hfrmAkt
    Case $hfrmKom
    GUISwitch($hfrmKom)
    GUISetState(@SW_RESTORE)
    ;WinActivate($sTitelKom)
    Case $hfrmDate
    GUISwitch($hfrmDate)
    GUISetState(@SW_RESTORE)
    ;WinActivate($sTitelDate)
    Case $hfrmConf
    GUISwitch($hfrmConf)
    GUISetState(@SW_RESTORE)
    ;WinActivate($sTitelDate)
    EndSwitch
    EndFunc

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

    Func _goToSuch()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtSuch, $GUI_FOCUS)
    EndFunc

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

    Func _goToMember()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtMember[0], $GUI_FOCUS)
    EndFunc

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

    Func _goToAdress()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtAnschrift[0], $GUI_FOCUS)
    EndFunc

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

    Func _goToAnrede1()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtAnrede[0], $GUI_FOCUS)
    EndFunc

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

    Func _goToAnrede2()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtAnrede[1], $GUI_FOCUS)
    EndFunc

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

    Func _goToHomePage()
    if $hfrmAkt = $hfrmMain Then GUICtrlSetState($hedtHomePage, $GUI_FOCUS)
    ;hier Funktion einbauen damit automatisch die Homepage aufgerufen wird
    EndFunc

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

    Edit1: gelöst ich musste nur das Handle des Hauptfensters bei der Erstellung mit angeben
    Edit2: $DS_SETFOREGROUND ist dann auch nicht mehr nötig. Warscheinlich sind bei dem Versuch das Problem zu lösen auch unnötige Programmzeilen enstanden. Falls etwas auffällt bitte trotz gelöst anworten

    Spoiler anzeigen
    [autoit]


    $hfrmConf = GUICreate($sTitelConf, 350, 200, 355, 355, $DS_MODALFRAME + $WS_CAPTION + $WS_SYSMENU + $WS_SIZEBOX, $WS_EX_TOOLWINDOW,$hfrmMain)

    [/autoit]

    vielen Dank im Voraus und freundliche Grüße von (Auto)Bert

    2 Mal editiert, zuletzt von AutoBert (6. April 2009 um 22:09)