﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
627	Using a re-sizable GUI and _GUICtrlStatusBar_EmbedControl cause AutoIt to hard-crash.	anonymous		"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
}}}
"	Bug	closed		AutoIt	3.2.12.1	None	No Bug		
