![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Режим наложения графики функцией BitBlt [D7, Win2k]
Tomek © (2005-09-10 16:56:00)Есть вот такой код :
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;
По моим представлениям и в соответствии с документацией, должен отобразиться на панельке текст БЕЗ ФОНА (т.е. с прозрачностью).
Отображается же черный прямоугольник. ПОчему? И как сделать так, чтобы отобразился текст без фона на панельке ?
miek (2005-09-12 10:40:00) [1]на каком основании он у тебя будет с прозрачностью, если режим SRCCOPY??? приколист. и вообще используй TransparentBlt, я что-то не помню, чтобы bitblt позволял нормальную прозрачность..
MBo (2005-09-11 09:21:00) [2]У тебя путаница с контекстами.
После получени dc:=GetDC(Panel1.Handle);
он доступен для рисования, создание доп. контекста и битмапа ни к чему.
Antonn (2005-09-10 18:52:00) [3]размеры bm в порядке?