Форум: "Основная";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];
ВнизРисование на рабочем столе полупрозрачных объектов Найти похожие ветки
← →
dmitry_12_08_74 (2008-08-26 13:40) [0]Как можно рисовать на рабочем столе объекты типа прямоугольника, рамки с настраиваемой степенью прозрачности
← →
{RASkov} © (2008-08-26 13:44) [1]> [0] dmitry_12_08_74 (26.08.08 13:40)
Захват контекста экрана DC:=GetDC(0);
Собственно рисуем на DC
Освобождаем DC - ReleaseDC(0, DC);
Зачем это все нужно-то? :)
← →
{RASkov} © (2008-08-26 13:44) [2]DC: HDC;
← →
Vlad Oshin © (2008-08-26 13:47) [3]procedure TForm1.FormCreate(Sender: TObject);
const
n = 7;
var
nn : integer;
ResultReg, Reg : HRGN;
P : array[0..n-1] of TPoint;
begin
//Put Ellipse
//инициализация ResultReg
ResultReg := CreateEllipticRgn(71,84,91,104);
//Put polygon
nn := 4;
P[0] := Point(81,84);
P[1] := Point(81,104);
P[2] := Point(425,104);
P[3] := Point(425,84);
Reg := CreatePolygonRgn(P, nn, ALTERNATE);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(415,84,435,104);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(415,84,435,104);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put polygon
nn := 4;
P[0] := Point(415,94);
P[1] := Point(415,248);
P[2] := Point(435,248);
P[3] := Point(435,94);
Reg := CreatePolygonRgn(P, nn, ALTERNATE);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(415,238,435,258);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(415,238,435,258);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put polygon
nn := 4;
P[0] := Point(425,238);
P[1] := Point(425,258);
P[2] := Point(78,258);
P[3] := Point(78,238);
Reg := CreatePolygonRgn(P, nn, ALTERNATE);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(68,238,88,258);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(68,238,88,258);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put polygon
nn := 4;
P[0] := Point(88,248);
P[1] := Point(89,94);
P[2] := Point(69,94);
P[3] := Point(68,248);
Reg := CreatePolygonRgn(P, nn, ALTERNATE);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
//Put Ellipse
Reg := CreateEllipticRgn(69,84,89,104);
CombineRgn(ResultReg,ResultReg,Reg,RGN_OR);
SetWindowRgn(Handle, ResultReg, False);
AlphaBlend:=(1>0);
AlphaBlendValue:=150;
end;
← →
dmitry_12_08_74 (2008-08-26 13:55) [4]Спасибо, можете немного словами пояснить код? У меня в результате выполнения получается обрезанная справа полупрозрачная рамка
← →
Vlad Oshin © (2008-08-26 13:59) [5]делаем прозрачную форму и из нее выпиливаем регионы
программа-генератор кода для выпиливаем регионы -
LogoMaker.exe ( www.ya.ru )
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c