티스토리 뷰

MFC MoveWindow 

 

MFC에서 사용하는 control들의

위치와 크기를 변경하는

movewindow함수에 대해 알아보겠습니다.

1
2
3
    void MoveWindow(int x, int y, int nWidth, int nHeight,
                BOOL bRepaint = TRUE);
    // x,y => 위치  nWidth, nHeight => 가로,세로 
cs

 

리스트 컨트롤 ID가 IDC_LIST1일 때

GetDlgItem(IDC_LIST1)->MoveWindow(10, 10, 100, 100);

을 사용하면

10,10 좌표에 가로세로 100인 크기로

컨트롤이 변경되게 됩니다.

 

추가적으로

BOOL GetWindowRect(HWND hWnd, LPRECT lpRect);

BOOL GetClientRect(HWND hWnd, LPRECT lpRect);

를 사용하면 컨트롤의 위치나 크기를 얻을 수 있습니다.

 

매우 간단한 예제

 

버튼 2개를 사용해서

리스트 박스 위치, 크기 변경

1
2
3
4
5
6
7
8
9
10
void CMFCApplication2Dlg::OnBnClickedButton1()
{
    GetDlgItem(IDC_LIST1)->MoveWindow(1010100100);
}
 
 
void CMFCApplication2Dlg::OnBnClickedButton2()
{
    GetDlgItem(IDC_LIST1)->MoveWindow(10110100100);
}
cs

 

버튼 1을 누르면

10,10위치에 100,100크기의

리스트박스가 만들어짐.

 

버튼 2를 누르면

10,110위치에 100,100크기의

리스트박스가 만들어짐.

감사합니다.