我用设置窗体的TransferColor和TransferColorValue属性和Timage控件只做了一个不规则窗体。然后我想在这个不规则窗体上加阴影效果。在百度上搜了下用了如下代码:
首先声明 protected
procedure CreateParams(var Params: TCreateParams); override;实现如下:procedure TForm1.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited;
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;其实我不明白代码的意思,但是阴影是出现了,由于我的不规则窗体是圆形的但是出现的阴影是矩形的(就是按照正常窗体花的阴影,视我的不规则窗体而不见!)。
各位高手我该怎么办?
如图:
首先声明 protected
procedure CreateParams(var Params: TCreateParams); override;实现如下:procedure TForm1.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited;
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;其实我不明白代码的意思,但是阴影是出现了,由于我的不规则窗体是圆形的但是出现的阴影是矩形的(就是按照正常窗体花的阴影,视我的不规则窗体而不见!)。
各位高手我该怎么办?
如图:
CreateRoundRectRgn //创建圆角矩形
CreateRectRgn //创建矩形
....还有圆形什么的.你找找对应的函数.这些创建的多边形是可以合并的:
CombineRgn //用这个API
//用合并后的多边形,或者单个rgn设置window
int SetWindowRgn(
HWND hWnd, // handle to window
HRGN hRgn, // handle to region
BOOL bRedraw // window redraw option
);