1. 모듈에 SetWindowPos Function 선언
Public 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
Public Const HWND_NOTOPMOST = -2 ' Not Always top
Public Const HWND_TOPMOST = -1 ' Always top
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
2. 폼의 Load Event 에서 SetWindowPos Function Call
Private Sub Form_Load()
SetWindowPos frmTest.hwnd, HWND_TOPMOST, 0, 0, 10, 10, SWP_NOMOVE Or SWP_NOSIZE
End Sub
3. frmTest 라는 폼을 띄울때 좌표는 0, 0 지점에 항상 최상위로 띄우게 됩니다.
위의 코딩부분을 폼로드시에 코딩해주거나 아니면
Load frmTest
frmTest.show
SetWindowPos frmTest.hwnd, HWND_TOPMOST, 0, 0, 10, 10, SWP_NOMOVE Or SWP_NOSIZE
위와 같이 어떤 버튼의 이벤트 밑에 적어주면 됩니다.
4. 참조
위의 0, 0 은 폼이 뜨는 절대좌표임으로 화면의 중앙에 띄울려면 스크린의
크기를 알고 폼의 크기를 안후에 계산한 값을 쓰면 중앙에 뜨게 되겠죠.
예) 스크린 크기 800 * 600
폼의 크기 200 * 200
그러면 (800 - 200) / 2 = 300
(600 - 200) / 2 = 200
그러면 0, 0 대산에 300, 200 이라는 값을 써주면 화면의 중앙에 최상위로
폼이 뜨게 됩니다.