- Offizieller Beitrag
Ich habe ein Formulareingabefenster, und möchte eine Größenänderung durch den User zulassen.
Minimale Werte für die Fenstergröße sind vorgegeben.
Die Größe des Fensters wird auch eingehalten. Wenn ich jedoch den rechten Rand/ die rechte untere Ecke zum Ziehen benutze, bleibt der Fensterrand am Minimum stehen, aber die Controls lassen sich beim weiter ziehen verkleinern, trotz Dock am rechten Fensterrand.
Hat jemand einen Tipp, wie das unterbunden werden kann?
AutoIt
#include <WindowsConstants.au3>
#include <GuiDateTimePicker.au3>
#include <GUIConstantsEx.au3>
Global $hGui, $hDate, $cbSN, $cbColleague, $inLocation, $hPurchase, $btSave
Global Enum $iLblDate, $iLblSN, $iLblColleaugue, $iLblLocation, $iLblPurchase, $iBtnSave
Global $aMinSize[] = [450,300]
; ==== lesen aus *.cfg ================
; iLang = 0-EN, 1-DE
Global $iLang = 1
Global $aText[6][2] = [ _
['Date','Datum'], _
['Serial number','Serien-Nr'], _
['Colleague','Kollege'], _
['Location','Ort'], _
['Date of purchase','Einkaufsdatum'], _
['Save','Speichern']]
; =====================================
_Main($hGui, $hDate, $cbSN, $cbColleague, $inLocation, $hPurchase)
Func _Main(ByRef $_hGui, ByRef $_hDate, ByRef $_cbSN, ByRef $_cbColleague, ByRef $_inLocation, ByRef $_hPurchase)
$_hGui = GUICreate('Formular', $aMinSize[0], $aMinSize[1], -1,-1,BitOr($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX))
GUICtrlCreateLabel($aText[$iLblDate][$iLang], 10, 13, 120)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$_hDate = _GUICtrlDTP_Create($_hGui, 135, 10, 120, 21, $DTS_SHORTDATECENTURYFORMAT)
GUICtrlCreateLabel($aText[$iLblSN][$iLang], 10, 48, 120)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$_cbSN = GUICtrlCreateCombo('', 135, 45, 300)
GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
GUICtrlCreateLabel($aText[$iLblColleaugue][$iLang], 10, 83, 120)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$_cbColleague = GUICtrlCreateCombo('', 135, 80, 300)
GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
GUICtrlCreateLabel($aText[$iLblLocation][$iLang], 10, 118, 120)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$_inLocation = GUICtrlCreateInput('', 135, 115, 300)
GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
GUICtrlCreateLabel($aText[$iLblPurchase][$iLang], 10, 153, 120)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
$_hPurchase = _GUICtrlDTP_Create($_hGui, 135, 150, 120, 21, $DTS_SHORTDATECENTURYFORMAT)
$_btSave = GUICtrlCreateButton($aText[$iBtnSave][$iLang], 335, 150, 100, 21)
GUICtrlSetResizing(-1, BitOR($GUI_DOCKWIDTH,$GUI_DOCKTOP,$GUI_DOCKHEIGHT,$GUI_DOCKRIGHT))
GUISetState()
GuiRegisterMsg($WM_SIZE, 'WM_SIZE')
While 1
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd
EndFunc
Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
Local $aSize = WinGetPos($hWnd)
If $aSize[2] < $aMinSize[0] Then WinMove($hWnd, '', $aSize[0], $aSize[1], $aMinSize[0], $aSize[3])
If $aSize[3] < $aMinSize[1] Then WinMove($hWnd, '', $aSize[0], $aSize[1], $aSize[2], $aMinSize[1])
EndFunc
Alles anzeigen