메모내용
마우스 위치표시
Win32 API

Win32 API 유용한 함수

윈도우 크기 관련 함수

AdjustWindowRect( )

클라이언트 크기를 기준으로 전체 윈도우 크기를 재계산 하는 함수

                    
                        // 클라이언트 크기를 기준으로 윈도우 크기 재계산 하는 함수
                        BOOL WINAPI AdjustWindowRect(
                            LPRECT lpRect, // 원하는 윈도우의 크기를 설정한 RECT 구조체의 주소, 여기에다가 새로운 크기로 수정해준다.
                            DWORD dwSytle, // 윈도우 스타일. 일반적으로 WS_OVERLAPPEDWINDOW
                            BOOL bMenu, // 메뉴의 크기를 포함할 것인지 아닌지 여부
                        )
        
                        //사용법
        
                        // 클라이언트 영역 사이즈를 300 으로 설정하고 싶다면
                        RECT windowSize = {0, 0, 299, 299}
        
                        AdjustWindowRect( *windowSize, WS_OVERLAPPEDWINDOW, true );
        
                        windowSize = { /*메뉴부분과 스타일을 고려한 전체 윈도우 사이즈*/ };
        
                    
                

GetClientRect( )

클라이언트의 크기를 조사하는 함수

  • 좌상단 0,0 에서 시작하여
    크기는 rect.right +1, rect.bottom +1 임을 알 수 있다.
  •                     
                            BOOL WINAPI GetClientRect(
                                HWND hWnd,     // 윈도우 핸들
                                LPRECT lpRect, // 계산한 크기를 받고자 하는 RECT 주소
                            )
                        
                    

    GetWindowRect( )

    전체 윈도우의 크기를 조사하는 함수

  • 크기를 계산하는 방법으로
    가로길이 : rect.right - rect.left
    세로길이 : rect.bottom - rect.top
  •                     
                            BOOL WINAPI GetWindowRect(
                                HWND hWnd,      // 윈도우 핸들
                                LPRECT lpRect,  // 계산한 크기를 받고자 하는 RECT 주소
                            )
                        
                    

    MoveWindow( ), SetWindowPos()

    윈도우의 위치나 크기를 변경해주는 함수

  • createWindow 가 호출된 이후에 호출한다
  •                     
                            BOOL WINAPI MoveWindow(
                                HWND hWmd,                  // 윈도우 핸들
                                int X, int Y,               // 출력 좌표
                                int nWidth, int nHeight,    // 윈도우의 크기
                                bool bRepaint,              // 클라이언트 영역을 다시그리게 할것인지 설정하는 인수
                            )
            
                            BOOL WINAPI SetWindowPos(
                                HWND hwnd,                  // 윈도우 핸들
                                HWND hWndInsertAfter,       // 주로 nullptr
                                int X, int Y,               // 출력좌표
                                int cx, int cy,             // 윈도우의 크기
                                UINT uFlag                  // 주로 0 을 입력한다.
                            )