Вниз
Скачать: 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 вся ветка

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



Память: 0.45 MB
Время: 0.035 c
2-1139063422
user2
2006-02-04 17:30
2006.02.19
Запрос


15-1138263518
son_g
2006-01-26 11:18
2006.02.19
Как в делфе написать резидента


15-1138449645
Хинт
2006-01-28 15:00
2006.02.19
Дурацкий вопрос


1-1137550952
джонни
2006-01-18 05:22
2006.02.19
Регистрация "протокола" / обработчика


2-1138550619
13
2006-01-29 19:03
2006.02.19
ActionMainMenuBar




   Наверх