Как переместить элементы управления снизу вверх формы MFC?

В VC++ 6.0 (MFC), как элементы управления, например: Button, EditBox и Static Text, можно перемещать из нижней части формы в верхнюю часть формы.


person Community    schedule 28.04.2009    source источник


Ответы (1)


Вы можете использовать CWnd::MoveWindow() для перемещения элементов управления. CWnd::GetDlgItem() извлечет CWnd для заданного идентификатора элемента управления.

Некоторый псевдокод, который будет вызываться из класса окна, являющегося родителем элементов управления:

RECT windowRect;
GetClientRect( &windowRect );// Bounds of the current window

CWnd* controlWindow = GetDlgItem( controlId );
RECT controlRect;
controlWindow->GetWindowRect( &controlRect );//control rectangle
ScreenToClient( &controlRect );//control rectangle in the coordinate system of the parent

const int vertOffset = windowRect.top - controlRect.top;//how much to adjust
controlRect.top += vertOffset;
controlRect.bottom += vertOffset;
controlWindow->MoveWindow( &controlRect );
person sharptooth    schedule 28.04.2009
comment
Можете ли вы показать образец кода или какой-либо пример, чтобы мне было понятнее. - person ; 28.04.2009