Форум: "KOL";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.057 c