如何在程序运行时,在屏幕上出现一个抓取的矩形框,类似一般的抓图软件。最好给个源码事例。

解决方案 »

  1.   

    是不是要在mousemove事件里自己绘制一个图框;^_^,
      

  2.   

    先copy 屏幕到窗体,窗体大小和屏幕一样大,然后用鼠标画框
      

  3.   

    截取屏幕指定区域, 
      代码如下: 
      procedure TClient.ScreenCap(LeftPos,TopPos, 
      RightPos,BottomPos:integer); 
      var 
      RectWidth,RectHeight:integer; 
      SourceDC,DestDC,Bhandle:integer; 
      Bitmap:TBitmap; 
      begin 
      RectWidth:=RightPos-LeftPos; 
      RectHeight:=BottomPos-TopPos; 
      SourceDC:=CreateDC('DISPLAY','','',nil); 
      DestDC:=CreateCompatibleDC(SourceDC); 
      Bhandle:=CreateCompatibleBitmap(SourceDC, 
      RectWidth,RectHeight); 
      SelectObject(DestDC,Bhandle); 
      BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC, 
      LeftPos,TopPos,SRCCOPY); 
      Bitmap:=TBitmap.Create; 
      Bitmap.Handle:=BHandle; 
      BitMap.SaveToStream(BmpStream); 
      BmpStream.Position:=0; 
      LeftSize:=BmpStream.Size; 
      Bitmap.Free; 
      DeleteDC(DestDC); 
      ReleaseDC(Bhandle,SourceDC); 
      end;