如何实现不规则的窗体,就想windows mediaplayer一样。
热门软件下载:
关键是form是一幅图(gif,jpg)。整样画?请给出例子和源码。
推荐阅读
function tform1.createregion(wmask:tbitmap;wcolor:tcolor;hcontrol:thandle): hrgn;
var
dc, dc_c: hdc;
rgn: hrgn;
x, y: integer;
coord: tpoint;
line: boolean;
color: tcolor;
begin
dc := getwindowdc(hcontrol);
dc_c := createcompatibledc(dc);
selectobject(dc_c, wmask.handle);
beginpath(dc);
for x:=0 to wmask.width-1 do
begin
line := false;
for y:=0 to wmask.height-1 do
begin
color := getpixel(dc_c, x, y);
if not (color = wcolor) then
begin
if not line then
begin
line := true;
coord.x := x;
coord.y := y;
end;
end;
if (color = wcolor) or (y=wmask.height-1) then
begin
if line then
begin
line := false;
movetoex(dc, coord.x, coord.y, nil);
lineto(dc, coord.x, y);
lineto(dc, coord.x + 1, y);
lineto(dc, coord.x + 1, coord.y);
closefigure(dc);
end;
end;
end;
end;
endpath(dc);
rgn := pathtoregion(dc);
releasedc(hcontrol, dc);
result := rgn;
end;
相关评论