Jump to content

Recommended Posts

Posted

Hi

 

I created my main GUI form and want to have like a message display box saying something like "please wait". It will then disappear once the process finished. It shouldn't include a maximize/minimize/close control and when shown, be on the foreground exclusively (you cannot click the main GUI until it disappears).

 

How can i do that?

 

Global Const $hGUIPicturemanager_WordRead=GUICreate("Please Wait",300,150,-1,-1,$WS_DLGFRAME,-1) 
Global Const $hGUIPicturemanager_WordRead_Text_static=GUICtrlCreateLabel("Please wait, processing",15,20,100,10)

GUISetState(@SW_SHOW,$hGUIPicturemanager_WordRead)

; do something

GUISetState(@SW_HIDE,$hGUIPicturemanager_WordRead)


;WinSetOnTop($hGUIPicturemanager_WordRead,"",1) doesn't work

 

 

Posted

Use the last (optional) parameter "parent" with GuiCreate. Here's a small example:

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

Global $hGui1, $hGui2 = -99, $idMsgBox, $idZurueck, $idbtnExit2
;_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)
#Region GUI1 #####################################################################################
$hGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;erzeugt eine GUI , das zurückgebebene Handle wird in der Variablen $hGui1 gespeichert
;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar

$idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "Aufruf Gui 2" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

$idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "ICQ" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

$idbtnExit1 = GUICtrlCreateButton('be&enden', 280, 225, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
;verankert den Button "beenden" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

GUISetState(@SW_SHOW, $hGui1)
#EndRegion ###########################################################################################

While 1
    $nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
    Switch $nMsg[1] ;für welches Fenster ist die Message
        Case $hGui1 ;ab hier ist Gui 1 dran
            Switch $nMsg[0] ;welche Message wurde ausgelöst
                Case $idbtnToGui2
                    GUISetState(@SW_DISABLE, $hGui1) ;Gui 1 gegen Benutzereingaben sperren
                    If $hGui2 = -99 Then _CreateGui2() ;nur wenn nicht am Anfang bereits erzeugt nötig, dann auf Vorbelegung der Variable in Global achten)
                    GUISetState(@SW_SHOW, $hGui2) ;Gui 2 anzeigen
                Case $idbtnICQ
                    MsgBox(0, "", "Jetzt würde ICQ gestartet", 0, $hGui1)
                    ;Run("C:\Program Files\ICQ7.0\ICQ.exe")
                Case $idbtnExit1, $GUI_EVENT_CLOSE
                    _end()
            EndSwitch
        Case $hGui2 ;ab hier ist Gui 2 dran
            Switch $nMsg[0] ;welche Message wurde ausgelöst
                Case $idMsgBox
                    MsgBox(0, 'Test', 'Test', 0, $hGui2)
                Case $idZurueck, $GUI_EVENT_CLOSE
                    GUISetState(@SW_ENABLE, $hGui1) ;Gui 1 wieder entsperren
                    GUISetState(@SW_HIDE, $hGui2)   ;Gui 2 verstecken
                Case $idbtnExit2
                    _end()
            EndSwitch
    EndSwitch
WEnd

Func _CreateGui2()
    $hGui2 = GUICreate('GUI 2', 400, 280, 200, 50, -1, -1, $hGui1) ;wichtig ist der letzte Parameter
    ;erzeugt eine GUI als Child von Gui1, das zurückgebebene Handle wird in der Variablen $hGui2 gespeichert
    $idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
    $idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
    $idbtnExit2 = GUICtrlCreateButton('be&enden', 280, 250, 100, 21)
    GUISetState(@SW_HIDE, $hGui2) ;Gui 2 vorerst verstecken
EndFunc   ;==>_CreateGui2

Func _end()
    GUIDelete($hGui2)
    GUIDelete($hGui1)
    Exit
EndFunc   ;==>_end

 

Posted

Hi

 

This still doesn't work, see

Local Const $hGUIPicturemanager_PicturesRename=GUICreate("Bitte warten",300,120,-1,-1,$WS_DLGFRAME,-1,$hGUIPicturemanager_main)
    Local Const $hGUIPicturemanager_PicturesRename_Text_static=GUICtrlCreateLabel("Bitte warten Sie, die Bilder werden umbenannt",20,20,300,30)
    Local Const $idmPicturesRename_Progress=GUICtrlCreateLabel("",20,50,300,30) ; !!
    GUISetState(@SW_SHOW,$hGUIPicturemanager_PicturesRename)
    WinSetOnTop($hGUIPicturemanager_PicturesRename,"",1)

$hGUIPicturemanager_main is the main UI. The child UI is displayed but it is still possible to switch focus to the main UI (which shouldn't).

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...