关联TControlCanvas啥意思,你用这个TControlCanvas在什么时候、什么地方画东西,贴代码看看

解决方案 »

  1.   

    睡觉鸟,不管汝了~
    不过提示一下,在所有绘图完成后,
    最后再调用TControlCanvas.textout(1,1,richedit1.text); 把文字再画上去
      

  2.   

    没想到这么晚了还能回复我的帖子,深表敬意!!!!!
    ‘关联TControlCanvas啥意思“var
     cc:TControlCanvas;
    begin
      cc.Control:=RichEdit
    然后用pen画图,
    再然后在richEdi输入文字,结果之前画的图都变了
      

  3.   

    我上面帖子就说了,你在绘图完毕后,再把文字画上去所以我前面就问你在什么时候什么地方做的绘图
    如果处理richedit的windowproc,在里面处理WM_PAINT消息时画的,那画完其他东西,最后把这个richedit的txet再画上去,用textout
      

  4.   

    我的richEdit内容不是固定的,我是想在form create的时候用TControlCanvas在richEdit上作图,之后客户想在richedit输入什么内容就输入什么内容,但是不会影响之前做的图。也就是用之前画的图作为richEdit的背景
      

  5.   

    从新画一次文字,不用管它文字内容是不是固定的画完图后,最后画文字
    var
     cc:TControlCanvas;
    begin
      cc.Control:=RichEdit;
      .... 画图行
     cc.TextOut(1,1,RichEdit.text);// 最后画文字
      

  6.   

    在form create里绘图是没有用的,那只是绘制一次,窗体一变化就会收到wm_paint、wm_erase消息,然后系统就会重绘,那么先前绘制的东西就会被抹去。
    你需要继承richedi,处理它的wm_pain消息,或者用上面的4#说的方法,说一千道一万,最后你进行完绘图后,最后一步把richedi上的文字从新绘制一遍
      

  7.   

    再次感谢sololie !!
    FoxMail编写邮件时可以选择背景,我想要的就是这样的效果。sololie能给指点一下吗
      

  8.   

    给你个简单示例,示例用一张位图作为richedit的背景,更多细节你自己处理吧
    http://pan.baidu.com/s/1CI0dn