c.haslam Posted February 5, 2016 Share Posted February 5, 2016 I have a child dialog that should close when Esc is pressed, but Esc should not close the parent dialog. I have Opt('GUICloseOnESC',0) at the top of the parent dialog to disable Esc closing this dialog (which works), but when I put Opt('GUICloseOnESC',1) at the top of the child dialog, pressing Esc does not close the child (I wish it would). Am I not understanding something? Is there a way other than GUICloseOnESC ? Spoiler CDebug Dumps values of variables including arrays and DLL structs, to a GUI, to the Console, and to the Clipboard Link to comment Share on other sites More sharing options...
JohnOne Posted February 5, 2016 Share Posted February 5, 2016 Simple reproducer? AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
nend Posted February 5, 2016 Share Posted February 5, 2016 You can use HotKeySet("{Esc}") and close the child window when the hotkey is pressed. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 5, 2016 Moderators Share Posted February 5, 2016 c.haslam, I would use an Accelerator key like this: expandcollapse popup#include <GUIConstantsEx.au3> Opt('GUICloseOnESC', 0) $hGUI = GUICreate("Test", 500, 500) $cGo = GUICtrlCreateButton("Child", 10, 10, 80, 30) GUISetState() $hChild = GUICreate("Child", 200, 200) $cEscape = GUICtrlCreateDummy() GUISetState(@SW_HIDE) Local $aAccelKeys[1][2] = [["{ESCAPE}", $cEscape]] While 1 $aMsg = GUIGetMsg(1) Switch $aMsg[1] Case $hGUI Switch $aMsg[0] Case $GUI_EVENT_CLOSE Exit Case $cGo GUISetState(@SW_SHOW, $hChild) GUICtrlSetState($cGo, $GUI_DISABLE) GUISetAccelerators($aAccelKeys, $hChild) EndSwitch Case $hChild Switch $aMsg[0] Case $GUI_EVENT_CLOSE, $cEscape GUISetState(@SW_HIDE, $hChild) GUICtrlSetState($cGo, $GUI_ENABLE) GUISetAccelerators(0, $hChild) EndSwitch EndSwitch WEnd M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
c.haslam Posted February 5, 2016 Author Share Posted February 5, 2016 (edited) Thank you all Edited February 5, 2016 by c.haslam Spoiler CDebug Dumps values of variables including arrays and DLL structs, to a GUI, to the Console, and to the Clipboard Link to comment Share on other sites More sharing options...
spudw2k Posted February 24, 2016 Share Posted February 24, 2016 (edited) Using GUIOnEventMode you can specify a function to run on the GUI_CLOSE event. I use this method in my Plasma_kIt script. ;psuedo-code / snippets Opt("GUIOnEventMode", 1) $hGUI1 = GUICreate(.... GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI1Close") $hGUI2 = GUICreate(.... GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI2Close") Nice and clean. edit: keep in mind that my child guis "close" functions are really "hide" functions. I just wanted to share another method. Search for the GUISetOnEvent lines in my script for closer inspection. Edited February 24, 2016 by spudw2k Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX BuilderMisc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retreive SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose ArrayProjects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalcCool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now