TMyWavePaintBox是继承TPaintBox的一个VCL。procedure TWYWavePaintBox.MyPaint;
var
  tempHDC:HDC;
  tempOldBitmap:HGDIOBJ;
  tempNewBitmap:HGDIOBJ; 
begin
  tempHDC:=CreateCompatibleDC(self.Canvas.Handle);
  tempNewBitmap:=CreateCompatibleBitmap(tempHDC,self.Width,self.Height);
  tempOldBitmap:=SelectObject(tempHDC,tempNewBitmap);
  BitBlt(tempHDC,0,0,self.Width,self.Height,self.Canvas.Handle,self.Width,self.Height,SRCCOPY);
  //此时的tempNewBitmap应该是对self.canvas抓屏的的结果了吧。但什么也没有???
  BitBlt(self.Canvas.Handle,tempCopyX,0,tempCopyWidth,tempCopyHeight,self.m_Canvas2.Handle,0,0,SRCCOPY);
  
  self.Canvas.MoveTo(tempX,tempUpY);
  self.Canvas.LineTo(tempX,tempDownY);
  SelectObject(tempHDC,tempOldBitmap);
  DeleteObject(tempNewBitmap);
  DeleteObject(tempHDC);
end;