DECLARE FUNCTION FindWindowAPI LIB "user32" ALIAS "FindWindowA" _
(ByVal lpClassName AS LONG, ByVal lpWindowName AS STRING) AS LONG

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function GetWindowLong Lib _
"user32" Alias "GetWindowLongA" (ByVal hWnd _
As Long, ByVal nIndex As Long) As Long

DECLARE FUNCTION SetWindowPos LIB "user32" ALIAS "SetWindowPos" _
 (hWnd AS Long, hWndAfter AS Long, x AS Integer, y AS Integer, width AS Integer, height AS Integer, FLAGS AS Integer) AS INTEGER

' Window field offsets for GetWindowLong() and GetWindowWord()
Const GWL_WNDPROC  As Long = (-4)
Const GWL_HINSTANCE As Long= (-6)
Const GWL_HWNDPARENT As Long= (-8)
Const GWL_STYLE As Long= (-16)
Const GWL_EXSTYLE As Long= (-20)
Const GWL_USERDATA As Long= (-21)
Const GWL_ID As Long= (-12)

Const WS_MINIMIZE As Long= &H20000000
Const WS_VISIBLE As Long= &H10000000
Const WS_DISABLED As Long= &H8000000
Const WS_CLIPSIBLINGS As Long= &H4000000
Const WS_CLIPCHILDREN As Long= &H2000000
CONST WS_MAXIMIZE=&H01000000
CONST WS_THICKFRAME AS LONG = &H40000
CONST WS_CAPTION AS LONG = &HC00000

'print WS_THICKFRAME

Const WS_EX_TOPMOST As Long= &H8
Const WS_EX_ACCEPTFILES As Long= &H10
Const WS_EX_TRANSPARENT As Long= &H20

'print WS_EX_TRANSPARENT
'print WS_EX_ACCEPTFILES

'end

DECLARE SUB GetHandle
DECLARE SUB SetStyle

deflng WinHandle

CREATE Form AS QFORM
  Caption = "Test"
  center
  CREATE Button AS QBUTTON
    Caption = "Get Handle"
    OnClick = GetHandle
  END CREATE
  CREATE Button1 AS QBUTTON
  top=Button.Top+40
    Caption = "SetStyle"
    OnClick = SetStyle
  END CREATE

     CREATE LogEdit AS QEDIT         
  Left = 6         
  Top = 85         
  Height = 99         
text="PowerGREP"
  END CREATE

END CREATE

Form.ShowModal

SUB GetHandle

  DIM str AS STRING
WinHandle=FindWindowAPI(0, LogEdit.text)
str = STR$(Form.Handle) +" "+ LogEdit.text+"=" + STR$(WinHandle)
  ShowMessage(str)
END SUB

SUB SetStyle
 Dim oldStyle As Long
 Dim Style As Long
    ' retrieve the current style of the control
    oldStyle = GetWindowLong(WinHandle, GWL_STYLE)
    style = oldStyle OR     WS_MAXIMIZE''WS_DISABLED''WS_THICKFRAME'''

'ShowMessage("oldStyle ="+str$(oldStyle )+"NewStyle ="+str$(Style )+" WinHandle="+str$(WinHandle))

aaa=SetWindowLong (WinHandle, GWL_STYLE  , style)
SetWindowPos(WinHandle, -1, 0, 0, 0, 0, 3)'STAY ON TOP
'print aaa,  "SetWindowLong1"
END SUB
