当RichEdit中的字符串 多于一页时  如何分页? 
 
 现在我能做到生成一页 程序如下:
 
var bmp:Tbitmap;
begin
    bmp:=tbitmap.Create;
    bmp.Height:=RichEdit1.Height;
    bmp.Width:=RichEdit1.Width;
    RichEdit1.SelAttributes.Color :=clred;
    bitblt(   bmp .Canvas.Handle,0,0,bmp.Width,bmp.Height,FrmPublishMessage.Canvas.Handle,RichEdit1.Left,RichEdit1.Top,srccopy);
    bmp.SaveToFile('c:\b.bmp');
    bmp.Free;
 end;  

解决方案 »

  1.   

    拷贝完一屏,让 richedit 向上滚动一屏再拷贝,完了再滚。SendMessage(RichEdit1->Handle, EM_SCROLL, SB_LINEDOWN, 0);//下移一行
    //SendMessage(RichEdit1->Handle, EM_SCROLL, SB_LINEUP, 0);//上移一行 
      

  2.   

       分页问题解决了 但又产生新的问题  就是每次分页的行数不一样 他可能与行距和字体大小有关 有时看到分的页里只能看到半行  请问有人知道这是怎么回事吗分页代码:
        iM := 65537; //赋初值
        i:=1;
        while iM > 65536 do
        begin
         bitblt (bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,FrmPublishMessage.Canvas.Handle,RichEdit1.Left,RichEdit1.Top,srccopy);
         bmp.SaveToFile('c:\'+formatfloat('000000',i)+'.bmp');
         iM := RichEdit1.Perform(EM_SCROLL, SB_PAGEDOWN ,0);
         if im=65536 then break;
         i:=i+1;
        end;