1,184
社区成员
发帖
与我相关
我的任务
分享
var bmp:Tbitmap;
IM,i:Integer;
begin
bmp:=tbitmap.Create;
bmp.Height :=RichEdit1.Height;
bmp.Width :=RichEdit1.Width;
// 下翻:RichEdit1.Perform(WM_VSCROLL,SB_PAGEDOWN,0);
// 上翻:RichEdit1.Perform(WM_VSCROLL,SB_PAGEUP,0);
SendMessage(RichEdit1.Handle,WM_VSCROLL,SB_TOP,0);
RichEdit1.SelStart := 0;
RichEdit1.SelLength:=0;
RichEdit1.SetFocus;
// if iM = 65536 then SendMessage(RichEdit1.Handle,EM_SCROLL, SB_top,0);
//如果返回值大于65536,则返回值与65536的差值就是滚动的行数
iM := 65537; //赋初值
i:=3;
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(ExtractFilePath(application.ExeName )+'DISP'+formatfloat('0',i)+'.bmp');
sleep(1000);
iM := RichEdit1.Perform(EM_SCROLL, SB_PAGEDOWN ,0);
RichEdit1.SelStart := 0;
RichEdit1.SelLength:=0;
RichEdit1.SetFocus;
showmessage(inttostr(im-65536));
if im=65536 then break;
i:=i+1;
end;
bmp.Free;