我的意思是说如何生成象金山词霸那样透明的Hint

解决方案 »

  1.   

    到底是Edit还是Hint,基本上是将其Canvas的Brush地Style设为bsClear.
      

  2.   

    TSpeedButton和TLabel就可以是透明的啊。
    SeeedButton.Flat := True;label.Transparent := True;
      

  3.   

    to C_Sharp(...)
    Edit没有Canvas属性,将其Brush的style设为bsClear后,其背景还是白的。
      

  4.   

    不错,Edit没有Canvas,所以不能通过Brush来改变背景。
    你可以自己继承一个控件,响应其WM_ERASEBKGND消息:
      TTransparentEdit = class(TEdit)
        procedure WMERASEBKGND(var message: TWMERASEBKGND); message WM_ERASEBKGND;
      end;
    procedure TTransparentEdit.WMPAINT(var message: TMessage);
    var
      DC: hDC;
    begin
      GetDC(Handle);
      Brush.Style := bsClear;
      FillRect(DC, ClientRect, Brush.Handle);
      ReleaseDC(Handle, DC);
    end;或者,通过窗口子类化来做,稍微复杂一点。