R
RAFAAJ2000
Hi there, I have the following code which draws a Button but I can't manage
to place it right over the XL application title bar . This is because the
'Y' parameter of the 'CreateWindow' API function is relative to the Client
area of the Parent window.
I hope someone can help me with this.
Code :
Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName _
As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, _
ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal _
hWndNewParent As Long) As Long
Declare Function DestroyWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Const SW_NORMAL = 1
Const WS_CHILD = &H40000000
Dim lngBtnHndl As Long
Sub CreateButton()
lngBtnHndl = CreateWindowEx(0, "Button", "Test !", WS_CHILD, _
ActiveWindow.Width * 3 / 4, 0, 50, 25, Application.hwnd, 0, 0, 0)
SetParent lngBtnHndl, Application.hwnd
ShowWindow lngBtnHndl, SW_NORMAL
End Sub
Sub DestroyButton()
DestroyWindow lngBtnHndl
End Sub
Jaafar.
Regards.
to place it right over the XL application title bar . This is because the
'Y' parameter of the 'CreateWindow' API function is relative to the Client
area of the Parent window.
I hope someone can help me with this.
Code :
Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName _
As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, _
ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal _
hWndNewParent As Long) As Long
Declare Function DestroyWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Const SW_NORMAL = 1
Const WS_CHILD = &H40000000
Dim lngBtnHndl As Long
Sub CreateButton()
lngBtnHndl = CreateWindowEx(0, "Button", "Test !", WS_CHILD, _
ActiveWindow.Width * 3 / 4, 0, 50, 25, Application.hwnd, 0, 0, 0)
SetParent lngBtnHndl, Application.hwnd
ShowWindow lngBtnHndl, SW_NORMAL
End Sub
Sub DestroyButton()
DestroyWindow lngBtnHndl
End Sub
Jaafar.
Regards.