Форум: "Media";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизРежим наложения графики функцией 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 вся ветка
Форум: "Media";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.033 c