我用设置窗体的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;其实我不明白代码的意思,但是阴影是出现了,由于我的不规则窗体是圆形的但是出现的阴影是矩形的(就是按照正常窗体花的阴影,视我的不规则窗体而不见!)。
各位高手我该怎么办?
如图:

解决方案 »

  1.   

    CSDN这么多高手,来个能帮帮我的啊。
      

  2.   

    用PNG图片做阴影效果比较好,而且你只要更改图片就可以看见效果。
      

  3.   

    不规则窗体,一般是用多边形来做的.有一组API:
    CreateRoundRectRgn  //创建圆角矩形
    CreateRectRgn       //创建矩形
    ....还有圆形什么的.你找找对应的函数.这些创建的多边形是可以合并的:
    CombineRgn  //用这个API
    //用合并后的多边形,或者单个rgn设置window
    int SetWindowRgn(
      HWND hWnd,     // handle to window
      HRGN hRgn,     // handle to region
      BOOL bRedraw   // window redraw option
    );