2009-04-21 7 views

Répondre

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()); 

La position d'un contrôle est dans la zone client du parent, donc nous devons d'abord obtenir la largeur et la hauteur de la fenêtre parent. Ensuite, nous obtenons la largeur et la hauteur du contrôle. Le milieu de la fenêtre parent est la différence des largeurs et des hauteurs, divisée par 2. MoveWindow est utilisé pour déplacer une fenêtre à la position désirée.

2

Dans l'éditeur de ressources VC6, vous pouvez sélectionner le contrôle et faire Ctrl + F9 pour le centrage vertical et Ctrl + Maj + F9 pour le centrage horizontal.

Programatically, vous pouvez utiliser MoveWindow Win32 API pour positionner le contrôle où vous voulez.

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()); 
Questions connexes