Option Explicit
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Const GWL_STYLE As Long = (-16)
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_THICKFRAME As Long = &H40000
Private Const SWP_FRAMECHANGED As Long = &H20
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private myLeft As Long, myTop As Long
Private myWidth As Long, myHeight As Long
Private Function OwnerItY() As Integer
Dim rst As String
rst = Screen.Height / 2
rst = rst / 22
OwnerItY = rst
End Function
Private Function OwnerItX() As Integer
Dim rst As Integer
rst = Screen.Width / 2
rst = rst / 22
OwnerItX = rst
End Function
Private Sub Command1_Click()
Dim retval As Long
myLeft = Me.ScaleX(Me.Left, vbTwips, vbPixels)
myTop = Me.ScaleY(Me.Top, vbTwips, vbPixels)
myWidth = Me.ScaleX(Me.Width, vbTwips, vbPixels)
myHeight = Me.ScaleY(Me.Height, vbTwips, vbPixels)
retval = GetWindowLong(Me.hwnd, GWL_STYLE)
SetWindowLong Me.hwnd, GWL_STYLE, retval _
And Not WS_CAPTION And Not WS_THICKFRAME
SetWindowPos Me.hwnd, HWND_TOPMOST, OwnerItX, OwnerItY, _
Me.ScaleX(Me.Width, vbTwips, vbPixels), _
Me.ScaleY(Me.Height, vbTwips, vbPixels), _
SWP_FRAMECHANGED
End Sub
Private Sub Command2_Click()
Dim retval As Long
retval = GetWindowLong(Me.hwnd, GWL_STYLE)
SetWindowLong Me.hwnd, GWL_STYLE, retval _
Or WS_CAPTION Or WS_THICKFRAME
Call SetWindowPos(Me.hwnd, HWND_NOTOPMOST, _
myLeft, myTop, myWidth, myHeight, SWP_FRAMECHANGED)
End Sub
Private Sub Form_Load()
mnuFile.Visible = False
End Sub