by just me » 05 Aug 2020, 03:01
Moin,
hier (Win 10 64 - AHK 1.1.32.00 64) erzeugt das Öffnen und Schließen der DDL ohne neue Auswahl eine
CBN_SELENDCANCEL Benachrichtigung. Die kann man mit
OnMessage()für
WM_COMMAND (0x0111) abfangen. Mit AHK 1.1 geht das nur für alle Nachrichten aller Controls. Das erhöht das Risiko, eine Benachrichtigung zu versäumen.
Code: Select all
#NoEnv
SetBatchLines, -1
Gui, Margin, 100, 20
Gui, Add, DDL, w100 gSubDDL vVarDDL hwndHDDL, 1|2|3|4
Gui, Show, , Test
OnMessage(0x0111, "WM_COMMAND")
Return
GuiClose:
ExitApp
SubDDL:
ToolTip, Neue Auswahl!
Return
WM_COMMAND(W, L, M, H) {
; CBN_SELENDCANCEL = 10
Global HDDL
Critical
If (L = HDDL) && (((W >> 16) & 0xFFFF) = 10)
{
ToolTip, Auswahl nicht geändert!
}
}
Moin,
hier (Win 10 64 - AHK 1.1.32.00 64) erzeugt das Öffnen und Schließen der DDL ohne neue Auswahl eine [url=https://docs.microsoft.com/en-us/windows/win32/controls/cbn-selendcancel][b]CBN_SELENDCANCEL[/b][/url] Benachrichtigung. Die kann man mit [c]OnMessage()[/c]für [c]WM_COMMAND (0x0111)[/c] abfangen. Mit AHK 1.1 geht das nur für alle Nachrichten aller Controls. Das erhöht das Risiko, eine Benachrichtigung zu versäumen.
[code]#NoEnv
SetBatchLines, -1
Gui, Margin, 100, 20
Gui, Add, DDL, w100 gSubDDL vVarDDL hwndHDDL, 1|2|3|4
Gui, Show, , Test
OnMessage(0x0111, "WM_COMMAND")
Return
GuiClose:
ExitApp
SubDDL:
ToolTip, Neue Auswahl!
Return
WM_COMMAND(W, L, M, H) {
; CBN_SELENDCANCEL = 10
Global HDDL
Critical
If (L = HDDL) && (((W >> 16) & 0xFFFF) = 10)
{
ToolTip, Auswahl nicht geändert!
}
}[/code]