请问如何使RichEdit的底背景透明?最好有实例!谢谢!!

解决方案 »

  1.   

    记不太轻了.....canvas.brush.color:=crclear;      好像是这样的........
      

  2.   

    1. 使RichEdit的窗口透明. SetWindowLong(RichEdit.Handle, GWL_EXSTYLE, GetWindowLong(RichEdit.Handle,GWL_EXSTYLE) or WS_EX_TRANSPARENT);2. 截获RichEdit的Wndproc, 处理以下消息:
        CN_CTLCOLORMSGBOX..CN_CTLCOLORSTATIC: 返回一个NullBrush的handle
    (防止编辑状态时清除背景).
        WM_ERASEBKGND: 什么都不做就返回1(防止窗口在刷新时清除背景)
      

  3.   

    dll调用出错怎么回事啊????
    其中有个错误和zfzhou的错误一样
    大部分都是内存问题。怎么解决
      

  4.   

    因为我需要让它显示下面的图片(image),不知道除了透明,还有没有其他方法?!谢谢!
      

  5.   

    楼主啊,你一开始就把自己推向了坎坷(不是悬崖,因为总会有办法解决的)。如果是为了显示文档内容,为什么不考虑用WebBrowser之类的控件呢?那里面你想怎么透明就怎么透明(前提是文档是你自己加载的,否则需要进行Web编程)。RichEdit真的是没什么意思,俺尽量不用它。此为拙见,讫为见谅。
      

  6.   

    请问WebBrowser该如何使用?我也没有办法把它的状态改变!!谢谢!
      

  7.   

    楼上的意见我都试了试,效果不是很好,我对这位老兄的建议,先建一个容器如:panel或者是groupbox ,然后再建一个imagine,选择stretch的属性为true
    再再加一richedit或edit.
      

  8.   

    看了一下TRichEdit代码,我觉得你的要求用TRichEdit来作是不太可能的。想想别的方法吧
      

  9.   

    type
      tmyRichEdit=class(TRichEdit)
      protected
      procedure wmpaint(var msg:twmpaint);message  wm_paint;
      procedure PaintImages(gra:tgraphic);
      public
      fgra:tgraphic;
      end;
    implementation
    procedure TMyRichEdit.PaintImages(gra:tgraphic);
    var
    MCanvas: TControlCanvas;
    DrawBounds : TRect;
    i, j : Integer;
    begin
    MCanvas:=TControlCanvas.Create;
    DrawBounds :=self.clientrect;
    try
    MCanvas.Control:=Self;
    if assigned(gra) then
    MCanvas.Draw(0, 1, gra)
    else
    MCanvas.Draw(0, 1, application.Icon);
    mcanvas.Pen.Color:=self.Font.Color;
    mcanvas.Brush.Color:=clnone;
    mcanvas.TextOut(0,0,self.Text);
    finally
    MCanvas.Free;
    end;
    end;procedure tmyRichEdit.wmpaint(var msg:twmpaint);
    var
    wcan:tcontrolcanvas;
    rec:trect;
    begin
    inherited;
    wcan:=tcontrolcanvas.Create;
    rec:=self.clientrect;
    try
    wcan.Control:=self;
    wcan.Brush.Color:=clbtnface;
    wcan.FrameRect(rec);
    InflateRect(rec, -3, -3);
    wcan.Pen.Color:=clyellow;
    wcan.FrameRect(rec);
    wcan.FillRect(rec);
    PaintImages(fgra);
    finally
    wCan.Free;
    end;
    end;
    自定义控件可以显示图片,但不是通过透明实现的,不知是否是你想要的效果。
      

  10.   

    到www.richview.com下载这个vcl组件吧,delphi6自己的第二张安装盘也带有的。
      

  11.   

    谢谢strongq(火血狼)!我会好好研究一下这个例子的!!多谢你的指导!!
    请问 smhpnuaa(天将降大任于斯人也!) ,这个控件有使用说明吗?我的e文不大好,看不太明白帮助!!谢谢!!