据说要派生一个子类?然后覆盖CreateParams方法?  
新手初学,请教啦!

解决方案 »

  1.   

    透明的控件, 一般继承自TGraphicControl的
    就是那些没有handle属性, 不能setfocus的控件, 如image
    对TWinControl类的控件, 要实现透明只要完成以下
    四步基本上就成了.
    1.在Create中设定ControlStyle :=
    ControlStyle - [csOpaque];)
    2. override 它的CreateParams方法, exstyle 里加上WS_EX_TRANSPARENT.
    3. 修改它的parent的window style, 去掉WS_CLIPCHILDREN.  inherited CreateParams(Params);
      with Params do
      begin
      { 完全重画 }
        Style := Style and not WS_CLIPCHILDREN;
        Style := Style and not WS_CLIPSIBLINGS;
      { 增加透明 }
        ExStyle := ExStyle or WS_EX_TRANSPARENT;
      end;
    4. 截获WM_ERASEBKGND, 什么都不做直接返回1.(不搽除背景)
    一般有上面3步能成. 有些控件比如TPanel, 在它的paint中用了fillrect, 
    所以要实现透明的话还要override 它的paint方法, 自己画.
    按钮透明需要进一步处理. 
    createparams里加上style := style or BS_OWNERDRAW;
    然后在WM_DRAWITEM中自己画吧
      

  2.   

    谢谢。
    我根据http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=204225这篇文章做了一个PACKAGE,但是,出现很多错误,最主要的是:unsatisfied forward or external declaration:TTransMemo.xxxxxx