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

Вниз

Режим наложения графики функцией BitBlt   Найти похожие ветки 

 
Tomek   (2005-09-10 16:56) [0]

Есть вот такой код :

 var s:string;
     dc,dc2:HDC;
     x:Integer;
     siz:SIZE;
     bm:HBITMAP;
begin
 s:="Hello world ! I am very glad you to see here in London !";
 dc:=GetDC(Panel1.Handle);
 dc2:=CreateCompatibleDC(dc);
 GetTextExtentPoint32(dc2,pchar(s),length(s),siz);
 bm:=CreateCompatibleBitmap(dc2,siz.cx,siz.cy);
 SelectObject(dc2,bm);
 SetBkMode(dc2,TRANSPARENT);
 TextOut(dc2,0,0,pchar(s),length(s));

 BitBlt(dc,0,0,siz.cx,siz.cy,dc2,0,0,SRCCOPY);

 DeleteDC(dc2);
 ReleaseDC(panel1.Handle,dc);
end;

По моим представлениям и в соответствии с документацией, должен отобразиться на панельке текст БЕЗ ФОНА (т.е. с прозрачностью).
Отображается же черный прямоугольник. ПОчему? И как сделать так, чтобы отобразился текст без фона на панельке ?


 
Antonn ©   (2005-09-10 18:52) [1]

размеры bm в порядке?


 
MBo ©   (2005-09-11 09:21) [2]

У тебя путаница с контекстами.
После получени dc:=GetDC(Panel1.Handle);
он доступен для рисования, создание доп. контекста и битмапа ни к чему.


 
miek ©   (2005-09-12 10:40) [3]

на каком основании он у тебя будет с прозрачностью, если режим SRCCOPY??? приколист. и вообще используй TransparentBlt, я что-то не помню, чтобы bitblt позволял нормальную прозрачность..



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
3-1134919989
Express
2005-12-18 18:33
2006.02.19
Обязательное поле....


15-1138798659
Влад
2006-02-01 15:57
2006.02.19
Как вам вот такие ГИС проекты


8-1126268377
Sanctus
2005-09-09 16:19
2006.02.19
DSPack


4-1133437485
Avers_SM
2005-12-01 14:44
2006.02.19
Ув. мастера. Как найти хендлы всех контролов на форме?


4-1133714790
Volf_555
2005-12-04 19:46
2006.02.19
Как определить количество файлов, помещённых на значок программы?