| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Fenster-Stil testen
PRFellow-Vorlage
Autor: Thomas Hölzer, 1999, Alle Rechte vorbehalten
Test, ob ein Fenster/Steuerelement einen bestimmten Fenster-Stil hat.
Parameter 1: FensterHandle: LongInt(&)
Parameter 2: Fraglicher Stil: LongInt(&)
Rückgabe ist allen Fällen ein Wahrheitswert (%):
1 = Stil ist gesetzt; 0 = Stil ist nicht gesetzt
Ab Profan 6.1 kann die Funktion HasStyle eingesetzt werden.
Für alle 32 Bit-Versionen ab 5.0 ist leider eine
Prozedur erforderlich, denn eine mögliche Funktionsdeklaration
scheitert leider bis Profan 6.6 noch daran, daß sie bei
einer Verschachtelung mit GetWindowLong fehlerhaft arbeitet.
Die Prozedur HasWindowExStyle prüft für alle
32 Bit Profan-Versionen in analoger Weise das Vorhandensein
eines WS_EX-Stils.
Def GetWindowLong(2) !USER32,GetWindowLongA
Für Profan >= 6.1:
Def HasStyle(2) Equ(And(GetStyle(&(1)),&(2)),&(2))
Für alle 32 Bit-Versionen:
Proc HasWindowStyle
Parameters hw&,tststyle&
Declare style&
Let style&=GetWindowLong(hw&,-16)
Return Equ(And(style&,tststyle&),tststyle&)
EndProc
Prüfung auf WS_EX - Stil für alle 32 Bit-Versionen:
Proc HasWindowExStyle
Parameters hw&,tststyle&
Declare style&
Let style&=GetWindowLong(hw&,-20)
Return Equ(And(style&,tststyle&),tststyle&)
EndProc
Beispiele
Def SetWindowLong(3) !USER32,SetWindowLongA
Cls
WindowTitle Add$(GetText$(%hwnd), - Powered by PRFellow 2001)
Print Hat dieses Fenster den Stil WS_CAPTION ?
Print
Die nächste Zeile nur ab Profan 6.1 (32) aktivieren:
Print Ergebnis HasStyle:,HasStyle(%hwnd,$C00000)
HasWindowStyle %hwnd,$C00000
Print Ergebnis HasWindowStyle:,%(0)
Print
Print
Print Hat dieses Fenster den erweiterten Stil WS_EX_CLIENTEDGE ?
HasWindowExStyle %hwnd,$200
Print
Print Ergebnis HasWindowExStyle:,%(0)
Print
Print
Color 9,15
Print Nach beliebiger Eingabe wird WS_EX_CLIENTEDGE gesetzt und erneut abgefragt.
WaitInput
SetWindowLong(%hwnd,-20,$200)
HasWindowExStyle %hwnd,$200
ShowMin
ShowNormal
Print
Print Ergebnis HasWindowExStyle:,%(0)
WaitInput
|
|
|
| |
|
|