Modify ↓
Opened 16 years ago
Closed 16 years ago
#627 closed Bug (No Bug)
Using a re-sizable GUI and _GUICtrlStatusBar_EmbedControl cause AutoIt to hard-crash.
Reported by: | anonymous | Owned by: | |
---|---|---|---|
Milestone: | Component: | AutoIt | |
Version: | 3.2.12.1 | Severity: | None |
Keywords: | Cc: |
Description
Creating a GUI interface that is re-sizable (BitOR($WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_TILEDWINDOW)) and then using _GUICtrlStatusBar_EmbedControl() this will make AutoIt hard crash
Tested for AutoIt v. 3.2.12.1 and 3.2.13.9
Example
#include <WindowsConstants.au3> #include <GuiConstantsEx.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> #include <SendMessage.au3> Opt('MustDeclareVars', 1) $Debug_SB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work Local $hGUI, $hProgress, $hInput, $input, $progress, $hStatus Local $aParts[4] = [80, 160, 300, -1] ; Create GUI $hGUI = GUICreate("StatusBar Embed Control", 400, 300, -1, -1, BitOR($WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_TILEDWINDOW)) ;=============================================================================== ; defaults to 1 part, no text $hStatus = _GUICtrlStatusBar_Create ($hGUI) _GUICtrlStatusBar_SetMinHeight ($hStatus, 20) ;=============================================================================== GUISetState() ; Initialize parts _GUICtrlStatusBar_SetParts ($hStatus, $aParts) _GUICtrlStatusBar_SetText ($hStatus, "Part 1") _GUICtrlStatusBar_SetText ($hStatus, "Part 2", 1) ; Embed a progress bar If @OSTYPE = "WIN32_WINDOWS" Then $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) $hProgress = GUICtrlGetHandle($progress) _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress) Else $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_MARQUEE) ; marquee works on Win XP and above $hProgress = GUICtrlGetHandle($progress) _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress) ;_SendMessage($hProgress, $PBM_SETMARQUEE, True, 200) ; marquee works on Win XP and above EndIf $input = GUICtrlCreateInput("This is Embeded", 0, 0) $hInput = GUICtrlGetHandle($input) _GUICtrlStatusBar_EmbedControl ($hStatus, 3, $hInput, 3) GUIRegisterMsg($WM_SIZE, "WM_SIZE") ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() ; Resize the status bar when GUI size changes Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam) _GUICtrlStatusBar_Resize ($hStatus) Return $GUI_RUNDEFMSG EndFunc ;==>WM_SIZE
Attachments (0)
Change History (1)
comment:1 Changed 16 years ago by Gary
- Resolution set to No Bug
- Status changed from new to closed
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Note: See
TracTickets for help on using
tickets.
See Ticket #45