Jump to content
Sign in to follow this  

How to get a true MsgBox modal mode ?

Recommended Posts



I have an AutoIt application, with a main interface consisting of several controls (buttons, lists...).

At some point, it displays a MsgBox, something like :

MsgBox(4096+48, "Warning", "Click OK if you want to go on with the application")

I'm looking for a way to make the click on this MsgBox mandatory before any other action can be made on the application.

For now, the 4096 flag keeps my MsgBox on top, but I can still put it aside and click on the controls of my main interface behind : nothing will happen on the moment, but once I click OK on the MsgBox, my previous actions on the interface will somehow "debuff" and take action. And this is precisely what I want to avoid. I want any action on the main interface to be simply IGNORED as long as the MsgBox is up.

If I'm not mistaken, what I'm trying to get is a real modal behaviour (as described in http://en.wikipedia.org/wiki/Modal_window) and it seems AutoIt "modal" flag isn't completely modal... :huh:

Any thoughts or ideas ?

Share this post

Link to post
Share on other sites

And you want it to be application modal, rather than system modal, so remove the 4096 flag.

#include <Constants.au3>
#include <GUIConstantsEx.au3>

Local $hGUI = GUICreate("Test")


MsgBox($MB_APPLMODAL, "MsgBox", "Hello, World!", 0, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE

Share this post

Link to post
Share on other sites

Faalamva (and others),

Reading the Modal MsgBox Styles tutorial in the Wiki might be helpful. ;)


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:


ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area


Share this post

Link to post
Share on other sites

Wonderful !

Thank you both for the fast and accurate replies !

Share this post

Link to post
Share on other sites

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
Sign in to follow this