Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменять позицию и размер контролов?

44K
12 января 2009 года
magfed
7 / / 12.01.2009
Доброго времени суток!

У меня такой вопрос: есть диалог, на нем кнопка и ListControl. Нужно при изменении размеров диалога изменять позицию кнопки (она должна быть "привязана" к правому нижнему углу диалога) и размер ListControl. Как это лучше сделать?

Есть идея каждый раз при изменении размеров окна удалять старые контролы и рисовать новые, в зависимости от размеров диалога, но это проблематически. Дело в том, что ListControl содержит очень много элементов, и его удаление с последующим заполнением нового контрола - очень долгая процедура.

Может кто знает более элегантный способ?

Заранее благодарен.
11
13 января 2009 года
oxotnik333
2.9K / / 03.08.2007
 
Код:
CWnd::SetWindowPos(    const CWnd* pWndInsertAfter,    int x,    int y,    int cx,    int cy,    UINT nFlags  );
342
13 января 2009 года
Yos
209 / / 21.06.2003
 
Код:
// получаем размер рабочей области
         GetClientRect(hDlg,&dialog);
         // устанавливаем
         hChild = GetDlgItem(hDlg,идентификатор контрола);
         if( hChild )
         {
            MoveWindow(hChild,dialog.left+14,dialog.top+16,dialog.right-28,dialog.bottom-64,TRUE);
            InvalidateRect(hChild,NULL,FALSE);
            UpdateWindow(hChild);
         }


Вообщем вот так, а если просто требуется перенести, то то что в скобках:

 
Код:
GetClientRect(hChild,&item);
            x = dialog.right-16-(item.right-item.left);
            y = dialog.bottom-48+(48-(item.bottom-item.top))/2;
            MoveWindow(hChild,x,y,item.right-item.left,item.bottom-item.top,TRUE);
            InvalidateRect(hChild,NULL,FALSE);
            UpdateWindow(hChild);
44K
13 января 2009 года
magfed
7 / / 12.01.2009
Большое человеческое спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог