Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Как отменить прорисовку child windows-ов?   Найти похожие ветки 

 
deema   (2004-03-03 21:21) [0]

День добрый. Я отрисовываю окно вручную по WM_PAINT и дочерние окна отрисовывать после этого не надо (иначе будет все жутко мигать). Как отменить прорисовку дочерних окон? Или убрать WM_PAINT из их очередей?
 А межет, еще как-нибудь можно?

Спасибо


 
wicked ©   (2004-03-03 21:27) [1]

сделать их ownerdraw и не рисовать...


 
LLL   (2004-03-03 23:00) [2]

Попробуй
Params.Style := Params.Style + WS_CLIPCHILDREN;


 
deema   (2004-03-04 08:26) [3]

Я тоже WS_CLIPCHILDREN делал, не помогает, они все равно потом отрисосываются. Я даже вручную их удалял из clip region, тоже без результата. К сожалению, OWNERDRAW я их сделать не могу, равно как и подменять их оконные процедуры и там ловить и отменять WM_PAINT. Вернее, могу, но геморроя не хочу - кучу процедур писать, присваивать их каждому child-у...
  Как-нибудь можно сообщение из очереди удалить?


 
DVM ©   (2004-03-04 08:59) [4]


> deema   (04.03.04 08:26) [3]

А зачем вообще создавать дочерний контрол, если он не будет прорисован?


 
deema   (2004-03-04 21:52) [5]

Он будет прорисован, но в свое время и на виртуальном битмэпе. Потом, я на этом битмэпе рисую еще кучу всего и потом просто рисую этот битмэп на DC окна. Все дочерние окна уже на этой битмэпе отрисованы. Поэтому-то и не хотел я просто лишать их обработки WM_PAINT. Кстати, рисование на битмэпе я взял из исходников TWinControl при Doublebuffered=true; А дочерние окна после всего еще раз себя перерисовывают, и что даже хуже перестирают (WM_ERASEBGND), а это дает мигание, от которого я хотел бы избавиться.


 
GrayFace ©   (2004-03-05 16:32) [6]

Дык можно всех детей на одну процедуру посадить. Один из парамеьров - хэндл окна. Создай 2 массива: хэндлы и оконные процедуры и сравнивай с параметром процедуры.



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
7-1079018077
cULt
2004-03-11 18:14
2004.05.02
Как заменить байт???


1-1081509914
LNick
2004-04-09 15:25
2004.05.02
Обработчик событий


1-1081762397
Beglec
2004-04-12 13:33
2004.05.02
Масштаб (Количество 96 точек/дюйм) - а как быть с 120 точками


3-1081261443
Виталий Панасенко
2004-04-06 18:24
2004.05.02
Два вопроса: MS SQL и PReport


7-1078581566
InfoCar1
2004-03-06 16:59
2004.05.02
Как удалить из реестра переменную?