Вниз
Скачать: CL | DM;

Мерцание при прорисовке   Найти похожие ветки 

← →
Washington ©   (2007-12-15 01:05) [0]

В событиии формы onPaint прорисовал заголовок формы. В результате - всё нормально рисуется, но при появлении формы мерцает. противно как-то. Если кто знает, подскажите, как убрать сие?


← →
Германн ©   (2007-12-15 01:14) [1]


> Washington ©   (15.12.07 01:05)
>
> В событиии формы onPaint прорисовал заголовок формы.

Эээ. Заголовок формы вроде как относится к неклиентской части окна. Так при чем же тут событие onPaint?


← →
Washington ©   (2007-12-15 01:18) [2]

А где тогда прописывать?


← →
Washington ©   (2007-12-15 01:20) [3]

Вернее я не совсем заголовок прорисовываю, я с помощью регионов убрал стандартный (в собтии onCreate), и в клиентской части нарисовал свой.


← →
korneley ©   (2007-12-15 01:21) [4]


> ...В результате - всё нормально рисуется, но при появлении
> формы мерцает...

Какой формы? Главной? Или какой другой?


← →
Washington ©   (2007-12-15 01:24) [5]

Да, главной


← →
Германн ©   (2007-12-15 01:25) [6]


> я с помощью регионов убрал стандартный

Имхо, "с помощью регионов" убрать стандартный нельзя.


← →
Германн ©   (2007-12-15 01:27) [7]


> Германн ©   (15.12.07 01:25) [6]
>
>

То бишь это проблема "мухи и котлеты".


← →
Washington ©   (2007-12-15 01:29) [8]


Region:=CreateRoundRectRgn(0,Height-ClientHeight,Width,ClientHeight,20,20);
SetWindowRgn(Handle,Region,True);

Может быть стандартный заголовок не убирается, но его не видно - факт


← →
korneley ©   (2007-12-15 01:35) [9]

А вот такой перректальный метод?
 AlphaBlend := true;
 AlphaBlendValue := 0;
После отрисовки
 AlphaBlendValue := 255;
Можно попробовать "всплыть" даже :)


← →
Германн ©   (2007-12-15 01:35) [10]


> Может быть стандартный заголовок не убирается, но его не
> видно - факт
>

А может твоё мерцание это как раз прорисовка стандартного заголовка. Который прорисовывается виндой, а потом затирается твоим кодом?


← →
Германн ©   (2007-12-15 01:46) [11]

Ведь если у формы (окна) есть заголовок, то этому окну винда обязательно пошлет WM_NCPAINT "при появлении" формы (окна ). И что-то там отрисуется. А потом твой регион эту область перерисует. Ну и как тут не мерцать?


← →
homm ©   (2007-12-15 07:57) [12]

> [3] Washington ©   (15.12.07 01:20)
> я с помощью регионов убрал стандартный

А что, менее ректальных способов для этого не нашлось? см. BorderStyle


← →
Washington ©   (2007-12-19 11:13) [13]

Подниму тему )
BorderStyle=bsNone


← →
Washington ©   (2007-12-19 11:23) [14]


> korneley ©   (15.12.07 01:35) [9]

Всё равно мерцает


← →
{RASkov} ©   (2007-12-19 11:26) [15]

> [14] Washington ©   (19.12.07 11:23)
> Всё равно мерцает

Знать бы еще, как и что ты там рисуешь.....


← →
Washington ©   (2007-12-19 12:23) [16]


> {RASkov} ©   (19.12.07 11:26) [15]

Нет, вот это уж лучше вам не знать :))))


← →
{RASkov} ©   (2007-12-19 12:33) [17]

> [16] Washington ©   (19.12.07 12:23)

Ну как знаешь.....

> Всё равно мерцает

> как убрать сие?

тогда ответ - Фик знает, да поможет тебе....
:о)



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.013 c
15-1197517281
Slider007
2007-12-13 06:41
2008.01.20
С днем рождения ! 13 декабря 2007 четверг


15-1197834037
Riply
2007-12-16 22:40
2008.01.20
Инициализация переменных в С


15-1197830729
Lip
2007-12-16 21:45
2008.01.20
Ряд Тэйлора


15-1197885385
ыы
2007-12-17 12:56
2008.01.20
Oracle 10g, установка


11-1182631081
=BuckLr=
2007-06-24 00:38
2008.01.20
Вопрос по версии библиотеки Рич




   Наверх