Windowを制御する


Option Explicit

'Window制御API
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

'SetWindowPos 引数用
Public Const HWND_TOP = 0 '最前列に表示する
Public Const HWND_BOTTOM = 1 '最下層に表示する
Public Const HWND_TOPMOST = -1 '常に最前面に表示する
Public Const HWND_NOTOPMOST = -2 '常に最下層に表示する


'SetWindowPos用
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_NOCOPYBITS = &H100
Public Const SWP_NOOWNERZORDER = &H200

Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER


'
'Form11を常に最後列に表示する
'
Public Sub BOTTOM()

Dim lngRet As Long

'ウィンドウを常に最後列に表示する
lngRet = SetWindowPos&(Form1.hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

End Sub
'
'Form1を常に最前列に表示する
'
Public Sub TOPMOST()

Dim lngRet As Long

'ウィンドウを常に手前に表示する
lngRet = SetWindowPos&(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)


End Sub




トップページに戻る

Tips一覧に戻る