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

Вниз

OnPaint = 100 раз ?!..   Найти похожие ветки 

 
Vladimyr ©   (2004-11-20 17:10) [0]

Написал обработчик события OnPaint для стандартной панели, который увеличивает некую переменную на 1 и затем выводит её значение на экран.
Оказалось, что при потере и последующем получении окном фокуса значение счётчика увеличивается на 70, если окно было частично закрыто, и на 102, если окно было закрыто полностью.
Это что же получается: Windows перерисовывает контрол 100 раз??
Кто-нибудь может прокомментировать сей факт?


 
Владимир Кладов   (2004-11-21 07:59) [1]

У меня увеличивается ровно на 1. У вас наверняка есть что-то прозрачное (Transparent) или используется DoubleBuffered. Или есть тулбар в стиле flat - в ХР добавится transparent. Красиво, но... Или давайте кто-нибудь всерьез займется исправлением DoubleBuffered+Transparent.


 
Vladimyr ©   (2004-11-21 19:57) [2]

Спасибо за ответ, но у меня в проекте нет ни DoubleBuffered, ни Transparent.
Может ли такую роль играть BitBtn? TabControl? Panel?

И ещё одно наблюдение: добавление одного элемента в проект вызывает увеличение количества перерисовок за один раз на 2, удаление - уменьшение на 2. Если форма была перекрыта частично, то количество перерисовок равно количеству закрытых ранее контролов. То есть, при перерисовке окна OnPaint вызывается для каждого контрола!!!

То есть, если в проекте 10 контролов, OnPaint будет вызвана 20 раз для каждого контрола!
Это ошибка моя или KOL?
Чем это может быть вызвано?


 
Vladimyr ©   (2004-11-21 20:08) [3]

Сорри, нашёл Transparent!!!  ~@:-}
(поиском в "Core1_1.inc", всего одна(!) метка)

Все пишущие на KOL, будьте внимательнее!
(иначе будет вот такая ботва :--C


 
ecm ©   (2004-11-21 20:14) [4]

Ничё - не сЦать - поправим!



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

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

Наверх




Память: 0.47 MB
Время: 0.066 c
1-1118260453
Gopher
2005-06-08 23:54
2005.06.29
Синтаксис


6-1111790626
Сеть
2005-03-26 01:43
2005.06.29
Подскажите способ простейшего обмена данными между двумя ip ? (


4-1115483450
Galiaf
2005-05-07 20:30
2005.06.29
Как сделать так чтобы при запуске проги появлялась иконка в трее?


14-1117562485
Ilya__
2005-05-31 22:01
2005.06.29
что такое сеть DHCP ?


9-1107804770
Micke
2005-02-07 22:32
2005.06.29
2D движок. Третья демка. Очередная :)