VC++ 6.0 MFC 프로젝트에서 컨트롤을 폼 중간으로 이동하는 방법은 무엇입니까?컨트롤을 MFC 폼 중간으로 이동하는 방법?
내가 편집 상자 (m_editcontrol)를 추가했다고 가정 해 봅시다.이 컨트롤을 양식의 중간으로 이동하는 방법은 무엇입니까?
VC++ 6.0 MFC 프로젝트에서 컨트롤을 폼 중간으로 이동하는 방법은 무엇입니까?컨트롤을 MFC 폼 중간으로 이동하는 방법?
내가 편집 상자 (m_editcontrol)를 추가했다고 가정 해 봅시다.이 컨트롤을 양식의 중간으로 이동하는 방법은 무엇입니까?
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는 창을 원하는 위치로 이동하는 데 사용됩니다.
VC6 리소스 편집기에서 컨트롤을 선택하고 수직 센터링을 위해 Ctrl + F9를, 수평 센터링을 위해 Ctrl + Shift + F9를 할 수 있습니다.
프로그래밍 방식으로 MoveWindow Win32 API를 사용하여 원하는 위치에 컨트롤을 배치 할 수 있습니다.
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());