![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вернуть прямоугольную форму из непрямоугольной? [D7, WinXP]
Dmitry_04 © (2005-02-08 18:12:00)Как вернуть прямоугольную форму из непрямоугольной? У меня вид формы создается функцией "SetWindowRgn".
Dmitry_04 (2005-02-09 14:17:00) [1]???
Dmitry_04 (2005-02-09 07:42:00) [2]Я бы тоже так хотел... чтобы форма менялась "плавно"... Подскажите как это сделать.
nnm (2005-02-09 00:05:00) [3]А можно ли это сделать покрасивее? Т.е. например чтобы форма иссчезла и появилась в новом обличии или плавно изменилась из одной в другую...
Я тут попробовал сделать на иссчезновение и появление:
AnimateWindow (Form1.Handle, 50, AW_BLEND or AW_HIDE);
...//изменение
AnimateWindow (Form1.Handle, 50, AW_BLEND);
Только это как-то не очень... форма изчезает, а появляется не измененной... а потом как появится быстро перерисовывается...
Юрий Зотов (2005-02-08 21:33:00) [4]> Dmitry_04 (08.02.05 21:16) [7]
Только без Client. Это же будет регион ВСЕГО окна, а не его клиентской области.
Dmitry_04 (2005-02-08 21:16:00) [5]Юрий ЗотовВы имеете ввиду так?
CreateRectRgn(0, 0, Form1.ClientWidth, Form1.ClientHeight);
Юрий Зотов (2005-02-08 21:09:00) [6]ИМХО, сохранить старый регион может и не получиться. Регионами окон владеет система, поэтому после вызова SetWindowRgn старый регион может быть уничтожен и его запомненный хэндл окажется недействителен (если только система не ведет счетчики пользователей оконных регионов).
Надежнее создавать новый регион и вновь назначать его окну.
Dmitry_04 (2005-02-08 20:30:00) [7]может есть какянибудь функция перерисовывания формы?
Dmitry_04 (2005-02-08 19:57:00) [8]сделал я через GetWindowRgn вроде все получилось... но я заметил вот что: у меня WinXP а там окна по углам закругленные и прозрачные, а тут они черные...
VMcLА к чему CreateRectRgn прибавлять? Я что-то не очень понял...
VMcL (2005-02-08 19:03:00) [9]+ CreateRectRgn()
begin...end (2005-02-08 18:35:00) [10]> Dmitry_04 (08.02.05 18:12)
Вероятно, перед вызовом SetWindowRgn можно сохранить старый регион, получив его с помощью функции GetWindowRgn.
Defunct (2005-02-08 18:32:00) [11]Не создавать с помощью SetWindowRgn вернется к прямоугольному виду.