最新进展:拦截WM_NCPAINT,代码改成:
var
  DC: HDC;  //设备描述表
  R: TRect; //客户区
  BorderBrush:HBRUSH;  //画笔句柄,API
begin
  try
  DC:= GetWindowDC(Handle);  //取得该组件的设备描述表
    GetWindowRect(Handle, R);  //取得该组件的客户区尺寸
    OffsetRect(R, -R.Left, -R.Top);//加这句
    BorderBrush := CreateSolidBrush(ColorToRGB(clwhite));
    FrameRect(DC, R, BorderBrush);
  finally
  ReleaseDC(Handle, DC);
  DeleteObject(BorderBrush);
  end;在动态创建控件时,边框还是黑的,要把窗体拖一部分到屏幕外才有显示,而且没画全,效果不好。。

解决方案 »

  1.   

    如果只是想去掉边框,不需要这么复杂。只需要将Memo或Edit的BorderStyle设为bsNone就行了。
      

  2.   

    美化Delphi推荐使用第三方控件AlphaControls,你要相信术业有专攻,第三方控件的作者只专注某一领域,而普通coder一般美化这块相对偏弱,与其浪费大量的时间去研究自绘,不如直接使用第三方控件,只是必要的时候修改第三方控件的源码。拿同样的工资何必折磨自己呢?AlphaControlsV8.51注册版〖含安装使用步骤和XE5DEMO〗
    http://download.csdn.net/detail/wozengcong/6689365
    VCLSkin v5.40 rebuild for XE4 AND XE5
    http://download.csdn.net/detail/wozengcong/6666645
    此控件可以美化到dialog对话框,能美化到“对话框皮肤”的XE版本只有AlphaControlsV8.51和skinVCL推荐AlphaControls,它可以美化动画效果、光亮效果、边框效果、反射效果等,可以自己制作和修改皮肤,是DELPHI皮肤控件中的精品