Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Михал Гость
|
Добавлено: Пт Ноя 07 2003 14:59 Заголовок сообщения: Visual C (DevStudio) |
|
|
Здравствуйте. У меня такой вопрос: Как можно (в OnPaint()) перерисовать управляющие элементы дилогового окна (кнопки и т.п.). Дело в том что я рисую в клиентской области, а дилоговое окно сделал (мне это нужно) resizible и пр измении его размеров то что я рисую руками перерисовывается нормально, а кнопки и все что я сделал в редакторе либо исчезает, либо накладываются на перерисованное. Объясняется это просто: все управляющие элементы в файле ресурсов имеют абсолютное позиционирование. Как это можно изменить программно? Спасибо. |
|
Вернуться к началу |
|
|
Алексей Гость
|
Добавлено: Пт Ноя 07 2003 15:24 Заголовок сообщения: Re: Visual C (DevStudio) |
|
|
По-моему никак. Я однажды тоже пытался это сделать. Можно предложить так:
В OnInitDialog(): Заводишь список всех дочерних окошек и их изначальных координат и размеров при помощи API-функции GetWindow(). Также запоминаешь изначальные размеры самого диалога.
Затем в OnSize() пробегаешь по списку и перемещаешь/масштабируешь все окна на требуемую величину.
Можно даже класс написать и выложить на CodeProject.com. Вдруг кому-то ещё потребуется. |
|
Вернуться к началу |
|
|
Anonymous Гость
|
Добавлено: Пт Ноя 07 2003 15:59 Заголовок сообщения: Re: Visual C (DevStudio) |
|
|
всё зависит от ситуации можно обработать resize или, если элементы группируются, использовать сплиттеры хотя первый вариант предпочтительней |
|
Вернуться к началу |
|
|
|