2009-04-21 3 views

답변

3
CRect rectParent; 
m_editcontrol.GetParent()->GetClientRect(rectParent); 
CRect rectControl; 
m_editcontrol.GetWindowRect(rectControl); 
m_editcontrol.MoveWindow((rectParent.Width()-rectControl.Width())/2, (rectParent.Height()-rectControl.Height())/2, rectControl.Width(), rectControl.Height()); 

컨트롤의 위치는 부모의 클라이언트 영역 내에 있으므로 우선 부모 창의 너비와 높이를 가져와야합니다. 그런 다음 컨트롤의 너비와 높이를 가져옵니다. 부모 창 가운데는 폭과 높이의 차이를 2로 나눈 값입니다. MoveWindow는 창을 원하는 위치로 이동하는 데 사용됩니다.

2

VC6 리소스 편집기에서 컨트롤을 선택하고 수직 센터링을 위해 Ctrl + F9를, 수평 센터링을 위해 Ctrl + Shift + F9를 할 수 있습니다.

프로그래밍 방식으로 MoveWindow Win32 API를 사용하여 원하는 위치에 컨트롤을 배치 할 수 있습니다.

2
CRect rectParent; 
m_pParentWnd->GetClientRect(rectParent); 
m_pParentWnd->ClientToScreen(rectParent); 
CRect rectControl; 
GetWindowRect(rectControl); 
MoveWindow(rectParent.left + (rectParent.Width()-rectControl.Width())/2, rectParent.top + (rectParent.Height()-rectControl.Height())/2, 
    rectControl.Width(), rectControl.Height()); 
관련 문제