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

Вниз

Рисование на рабочем столе полупрозрачных объектов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1250138266
Сергей Давыдов
2009-08-13 08:37
2009.10.18
Оплачю разработку фунции преобразования! (50$)


15-1250232134
F$
2009-08-14 10:42
2009.10.18
Include TD32 debug info


15-1249654837
девушка
2009-08-07 18:20
2009.10.18
Кого-нибудь дергали в связи с 152-ФЗ ?


1-1219665943
Still Swamp
2008-08-25 16:05
2009.10.18
Найти и заменить все строки в подстроке.


11-1160154021
Vladimir Kladov
2006-10-06 21:00
2009.10.18
MCK for new Delphi versions