Clark Posted March 21, 2013 Share Posted March 21, 2013 Sometimes I just have no idea how to even start to get something to work. Ok, so I have a main form, which I create with GUICreate. On this form there is a button, which pops up another window which has some radio buttons on it (for setting filters on the main form). I create this popup window using $frmFilter = GUICreate("Filter", 444, 283,-1,-1,BitOR($WS_BORDER,$WS_POPUP)) This form also has on it (apart from the radio buttons) two buttons, "cancel" and "apply" Now, I would like for the user to not be able to click outside this window and only be able to exit this form using the cancel and apply buttons. It should not preclude them clicking outside for other programmes, but prevent them clicking in the main form which is in the background. Is there a simple way to do this? Or do I need to somehow build it into the main loop logic? Or perhaps track mouse movements? I've looked at the Styles and Extended Styles, but none of them seems to do this in a way that is obvious to me, without trying each of them in turn with combinations. I have searched for an answer in the forums, however, it is hard to know what to search for when I don't know what I am looking for. TIA Clark Link to comment Share on other sites More sharing options...
BrewManNH Posted March 21, 2013 Share Posted March 21, 2013 Use WinSetState("WindowTitleHere", "", @SW_DISABLE), then the GUI is disabled and even if they do click on it, it won't do anything. Or you could just use GUISetState(@SW_HIDE, $GUIHandle) to hide the window until you're done with the options window. Clark 1 If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
funkey Posted March 21, 2013 Share Posted March 21, 2013 _MouseTrap() But I don't think this is the right way! Clark 1 Programming today is a race between software engineers striving tobuild bigger and better idiot-proof programs, and the Universetrying to produce bigger and better idiots.So far, the Universe is winning. Link to comment Share on other sites More sharing options...
AZJIO Posted March 21, 2013 Share Posted March 21, 2013 (edited) Pass as a parameter a handle to the parent windowGUICreate($LngAbout, 220, 330, -1, -1, BitOR($WS_CAPTION, $WS_SYSMENU, $WS_POPUP), -1, $hGui)http://pastebin.com/fWcPjjfP Edited March 21, 2013 by AZJIO Clark 1 My other projects or all Link to comment Share on other sites More sharing options...
Clark Posted March 21, 2013 Author Share Posted March 21, 2013 Thank you people, Those suggestions work fine for me. I didn't realise that using WinSetState would give such a better result for me than GUICtrlSetState, which I tried but was not useful. Link to comment Share on other sites More sharing options...
PhoenixXL Posted April 2, 2013 Share Posted April 2, 2013 It should be GUISetState not GUICtrlSetState#include <WindowsConstants.au3> $hParent = GUICreate(@ScriptName) GUISetState() GUISetState(@SW_DISABLE) ;Your Controls... $hChild = GUICreate("Child", 50, 50, -1, -1, -1, -1, $hParent) GUISetState() Do Sleep(10) Until GUIGetMsg() = -3Regards Clark 1 My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. 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