BlackEvil Posted May 11, 2010 Share Posted May 11, 2010 Hi, I have a GUI application, which works fine without any issues. I added an "About" button" and used pop_up style window to show the About of the app when i click on the button. When i click on the OK in about window the window closes. but the main GUI fails to respond to the mouse clicks then onwards. I am not sure how to handle child windows. can somebody throw some light? I am using a child window got from this forum. its code is as below (it is slightly modified to meet my rqmnts ) expandcollapse popup#include <GuiconstantsEx.au3> #include <WindowsConstants.au3> #include <ProgressConstants.au3> #include <SendMessage.au3> Global $hGUI;,$parent HotKeySet("{ESC}", "On_Exit") Func On_Exit() GUIDelete($hGUI) EndFunc ;==>On_Exit ;~ local $parent ;uncomment this two lines to work independently ;~ ShowAbout($parent) Func ShowAbout($parent) ;$hGUI = GUICreate("X", 300, 100, -1, -1, BitOR($WS_POPUP,$WS_BORDER)) $hGUI = GUICreate("X", 300, 150, -1, -1, BitOR($WS_POPUP, $WS_BORDER));,Default,$parent) $Progress = GUICtrlCreateProgress(-2, 140, 304, 10, $PBS_MARQUEE) $h_Prgrs = GUICtrlGetHandle($Progress) _SendMessage(GUICtrlGetHandle(-1), $PBM_SETMARQUEE, True, 10) ; final parameter is update time in ms $hButton = GUICtrlCreateButton("OK", 205, 108, 81, 25) $AppName = GUICtrlCreateLabel(" Readme Creator", 14, 22,240, 25) $AppVer = GUICtrlCreateLabel("Ver: 0.9", 14, 50) GUICtrlSetFont($AppName,14,400,2, "Times New Roman",5) $Label1 = GUICtrlCreateLabel("Programmed in AutoIT V3.3.6.1", 14, 90) GUIRegisterMsg($WM_NCHITTEST, "_NCHITTEST") GUISetBkColor(0x00E0FFFF,$hGUI) ; will change background color GUICtrlSetBkColor($hButton, 0x00A0FFFF) ; will change background color GUICtrlSetBkColor($h_Prgrs, 0x00A0FFFF) ; will change background color GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ;Exit GUIDelete($hGUI) Case $hButton ;Exit GUIDelete($hGUI) EndSwitch WEnd EndFunc ;==>ShowAbout Func _NCHITTEST($hWnd, $uMsg, $wParam, $lParam) If $hWnd = $hGUI Then Local $aPos = WinGetPos($hWnd) If Abs(BitAND(BitShift($lParam, 16), 0xFFFF) - $aPos[1]) < 100 Then Return $HTCAPTION EndIf Return $GUI_RUNDEFMSG EndFunc ;==>_NCHITTEST one more thing is i need the about window should be blocking. ie main gui should be accessible only after closing the "about" Link to comment Share on other sites More sharing options...
zorphnog Posted May 11, 2010 Share Posted May 11, 2010 Unregister the $WM_NCHITTEST message when you exit the About window. GUIRegisterMsg($WM_NCHITTEST, "") Link to comment Share on other sites More sharing options...
l3ill Posted May 11, 2010 Share Posted May 11, 2010 Return 0 and ExitLoop placed strategically in your While Wend will get you back to the rest of your script. My Contributions... SnippetBrowser NewSciTE PathFinder Text File Manipulation FTP Connection Tester / INI File - Read, Write, Save & Load Example Link to comment Share on other sites More sharing options...
zorphnog Posted May 11, 2010 Share Posted May 11, 2010 @billo is correct. I totally overlooked the endless loop you have. Link to comment Share on other sites More sharing options...
BlackEvil Posted May 12, 2010 Author Share Posted May 12, 2010 @billo. Thank you for the help extended. I updated the code sections like this Func On_Exit() $msg = $GUI_EVENT_CLOSE EndFunc ;==>On_Exit and While 1 Select Case $msg = $GUI_EVENT_CLOSE OR $msg = $hButton ;Exit ExitLoop EndSelect $msg = GUIGetMsg() WEnd GUIDelete($hGUI) GUIRegisterMsg($WM_NCHITTEST, "") It works fine. But now i notice another issue. I have the same progress bar as in about window in main GUI. It does not appear if i view "about" and then close it. Everything else works fine. @zorphnog: thanks for the update. Do i have to Unregister the $WM_NCHITTEST message when you exit the About? I added it after GUI delete. But my issue doesnot solve. My second question is : I need the about window blocking. how to do it? Link to comment Share on other sites More sharing options...
BlackEvil Posted May 12, 2010 Author Share Posted May 12, 2010 Solved the second question: (parent child issue) by giving the main gui handle to About window. Link to comment Share on other sites More sharing options...
BlackEvil Posted May 13, 2010 Author Share Posted May 13, 2010 any help for me? 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