2009-04-21 2 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()); 
Смежные вопросы