본문 바로가기

자료

[VB.NET/C#]GetClientRect, GetWindowRect

728x90

 

블로그 인기글

● 메이플스토리 신규 룬패치/자동해제 프로그램 [링크 이동]

● 메이플스토리 거짓말탐지기 알림 프로그램 [링크 이동]

C#에서 TensorFlow 사용하는법 [링크 이동]


Private Declare Function GetWindowRect Lib "user32" _



                        (ByVal hwnd As Long, _

                         lpRect As RECT) As Long



Private Declare Function GetClientRect Lib "user32" _

                        (ByVal hwnd As Long, _

                         lpRect As RECT) As Long



Private Type RECT

        Left As Long

        Top As Long

        Right As Long

        Bottom As Long

End Type





Private Sub Form_Load()



  Dim WindowRect As RECT

  Dim ClientRect As RECT



  GetWindowRect Me.hwnd, WindowRect



  GetClientRect Me.hwnd, ClientRect



  Debug.Print WindowRect.Left

  Debug.Print WindowRect.Top

  Debug.Print WindowRect.Right

  Debug.Print WindowRect.Bottom



  Debug.Print ClientRect.Left

  Debug.Print ClientRect.Top

  Debug.Print ClientRect.Right

  Debug.Print ClientRect.Bottom



End Sub

 

약 폼안에 있는 PictureBox를 GetWindowRect 로 위치정보를 가져오면 어디를 기준으로 가져올까요?

화면 좌표 기준이니 화면내 PictureBox의 위치정보를 가져오게됩니다.

 

Tip.

프로젝트 내의 폼 크기나 위치정보를 얻기위해 굳이 API 안써도 된다고 하지만 몰라서 해될건 없으니..^^

RECT 구조체로 얻은 결과를 Form 속성과 비교하여 보면 더 이해가 쉽다.

 

Me.Left \ 15 = WindowRect.Left

Me.Top \ 15 = WindowRect.Top

Me.Width \ 15 = WindowRect.Right - WindowRect.Left

Me.Height \ 15 = WindowRect.Bottom - WindowRect.Top

Me.ScaleWidth \ 15 = ClientRect.Right

Me.ScaleHeight \ 15 = ClientRect.Bottom

 

728x90