Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с WM_SIZE+SetWindowPos


Dr.Null ©   (2004-02-26 00:03:00) 

Тема такая: у меня по сообщению WM_SIZE главному окну выстраиваются дочерние контролы при помощи SetWindowPos. Контролы разнообразные: несколько Button'ов, RichEdit, Edit, ListView и все такое. Проблема в том, что при этом все контролы очень жутко мерцают, или может это главное окно мерцает... короче факт мерцания имеет место быть. Раньше этого не было видно, т.к. в настройках винды была отключена опция "Отображать содержимое при перетаскивании", а ща включил и ужаснулся. Как побороть?

Заранее благодарен.

PS Убедительная просьба не предлагать в качестве решения данной проблемы отключение вышеописанной опции Windows. Еще раз спасибо.


wicked   (2004-03-03 18:57:00) [1]

еще надо обрабатывать сообщение WM_ERASEBKGND для главного окна, а точнее саботировать его работу - обрабатывать, но фон окна не вытирать....


NAlexey   (2004-03-01 15:13:00) [2]

Попробуй включить в SetWindowPos флаг SWP_NOCOPYBITS.


VMcL   (2004-02-28 17:48:00) [3]

>> Dr.Null  (27.02.04 19:21) [13]

> Зачем вообще этот форум придуман?
Это вопрос к разработчикам и модераторам, а не ко мне.

> Давайте все в VCL полезем копаться.
У тебя проблемы с чтением исходного кода Object Pascal? Или ты считаешь, что кому-то охота вместотебя тратить свое время, чтобы тебе помочь?


Dr.Null   (2004-02-27 19:21:00) [4]

Спасибо конечно, за [7]! Грамотный совет... вообще так на любой вопрос ответить можно впринципе. Зачем вообще этот форум придуман? Давайте все в VCL полезем копаться.


VMcL   (2004-02-27 18:49:00) [5]

И вообще хватит заниматься личной перепиской. Я ответ дал в [7] - см. исходники.


VMcL   (2004-02-27 18:48:00) [6]

Я не телепат и угадывать, зачем тебе понадобилось "пользоваться SetWindowPos", не намерен.


Dr.Null   (2004-02-27 16:15:00) [7]

А давайте посильнее подумаем, если у меня было бы VCL, зачем бы мне пользоваться SetWindowPos?


VMcL   (2004-02-27 11:28:00) [8]

>Dr.Null  (26.02.04 22:51) [8]
>А если взять и посмотреть на название раздела и подумать
>логически? Уж извните, если прозвучит несколько грубо...

А если взять и подумать? Если я пишу на VCL, то не имею права WinAPI использовать и соответственно задать вопрос по нему в  конф-ции "WinAPI"?


Dr.Null   (2004-02-26 22:51:00) [9]

> VMcL ©   (26.02.04 22:28) [7]
> если конечно на VCL, а не на чистом WinAPI

А если взять и посмотреть на название раздела и подумать логически? Уж извните, если прозвучит несколько грубо...


VMcL   (2004-02-26 22:28:00) [10]

P.S. к [6] - если конечно на VCL, а не на чистом WinAPI. В последнем случае рекомендую взглянуть на исходники TWinControl и обратить внимание на DoubleBuffered.


VMcL   (2004-02-26 22:26:00) [11]

>Dr.Null  (26.02.04 09:02) [2]
>Это ваще к чему?

"DoubleBuffered" + F1


Dr.Null   (2004-02-26 22:19:00) [12]

Присовоение стиля WS_CLIPCHILDREN значительно сокаратило мерцание, но не до конца, особо заметны остаточные явления на ListView и StatusBar. Присвоение дочерним контролам стиля WS_CLIPSIBLINGS по-моему не дает никаких изменений. Пытаюсь разобраться с *DeferWindowPos, но пока безуспешно.


wicked   (2004-02-26 11:34:00) [13]

поправка - для главного окна стиль должен быть WS_CLIPCHILDREN, безWS_CLIPSIBLINGS....


wicked   (2004-02-26 11:05:00) [14]

стиль главному окну - WS_CLIPCHILDREN + WS_CLIPSIBLINGS....
стили кнопкам - WS_CLIPSIBLINGS...
также см BeginDeferWindowPos/DeferWindowPos/EndDeferWindowPos...


Dr.Null   (2004-02-26 09:02:00) [15]

Это ваще к чему?


VMcL   (2004-02-26 02:07:00) [16]

DoubleBuffered := True
?


Наверх

Титульная страница Поиск, карта сайта Написать письмо