Einzelnen Beitrag anzeigen
Alt 22.02.2017, 14:30   #20
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von JPA Beitrag anzeigen

Gute Nachricht: ja, hab's mal getestet

Schlecht Nachricht: verstehe nicht genau warum

Ich glaube eher zufällig, weil du noch ein paar andere Styles mit der magischen Zahl -2033713152 abfragst. - Ich mag sie gerade nicht auseinanderdröseln.

Dein Ansatz funktioniert leider nicht, wenn die ControlBox des Forms ausgeschaltet wird. Deine Funktion gibt dann immer False (0) zurück, auch denn das Form ein Dialog ist.

So funktioniert es:
Code:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As Long
Private Const GWL_EXSTYLE As Long = -20
Private Const WS_EX_DLGMODALFRAME As Long = &H1

Public Function IsFormDialog(frm As Form) As Boolean
    Dim hWnd As LongPtr
    Dim lngStyle As Long
    
    hWnd = frm.hWnd
    lngStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
    IsFormDialog = CBool((lngStyle And WS_EX_DLGMODALFRAME) = WS_EX_DLGMODALFRAME)
End Function

Geändert von sonic8 (22.02.2017 um 14:34 Uhr). Grund: IsFormModal umbenannt zu IsFormDialog
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten