Moin festigrat,
wenn Du UpDown-Controls so definierst, wie in Deinem Beispiel, sorgt AHK dafür, dass
- das UpDown-Control mit dem davor erstellten Edit-Control verbunden wird (das Edit wird zum 'Buddy-Control').
- das UpDown-Control bei jeder Änderung seinen aktuellen Wert in das Buddy-Control schreibt.
Für
2. setzt AHK automatisch den Stil
UDS_SETBUDDYINT (0x0002). Wenn man diesen Stil mit
-0x0002 manuell entfernt, lässt das UpDown-Control sein Buddy-Control in Ruhe. Wenn man jetzt noch ein
gLabel definiert, das bei Änderungen des UpDown-Controls aufgerufen wird, kann man den aktuellen Wert im gewünschten Format selbst in das Buddy-Control stellen.
(Diese Vorgehensweise eignet sich auch gut dafür, im Buddy-Control Änderungen mit einer Schrittweite <> 1 anzuzeigen.)
Ein möglicherweise verständlicheres Beispiel sähe vielleicht so aus:
Code: Select all
#NoEnv
; UDS_SETBUDDYINT = 0x0002
; -> docs.microsoft.com/en-us/windows/desktop/Controls/up-down-control-styles
Gui, Add, Edit, x340 y520 w40 vEDHH Number Limit2, 20
Gui, Add, UpDown, vUDHH Range0-24 -0x0002 gHH_Changed, 20 ; -0x0002 : das UpDown soll seinen 'Buddy' nicht automatisch verändern
Gui, Add, Edit, x380 y520 w40 vEDMM Number Limit2, 00
Gui, Add, UpDown, vUDMM Range0-60 -0x0002 gMM_Changed, 00 ; -0x0002 : das UpDown soll seinen 'Buddy' nicht automatisch verändern
Gui, Show, , Test
Return
GuiClose:
ExitApp
HH_Changed:
GuiControl, , EDHH, % Format("{:02}", UDHH)
Return
MM_Changed:
GuiControl, , EDMM, % Format("{:02}", UDMM)
Return