CAFE

vb6 api

윈도우 최상위,SetWindowPos

작성자올란도|작성시간09.01.29|조회수1,195 목록 댓글 1

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 이라는 값을 써주면 화면의 중앙에 최상위로
       폼이 뜨게 됩니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자꼭미남강유 | 작성시간 09.04.10 폼 이름을 바꿔야하는군요. 자주 쓰일듯..
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼