如何进行屏幕截取

进行屏幕截取 

(1)

 void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
      TCanvas   *canvas;  
      Graphics::TBitmap   *bmp;  
      try  
      {  
          canvas   =   new   TCanvas();  
          canvas->Handle   =   GetDC(0);  
          bmp   =   new   Graphics::TBitmap();  
          bmp->Width   =   Screen->Width;  
          bmp->Height   =   Screen->Height;  
          TRect   rect   =   Rect(0,0,Screen->Width,Screen->Height);  
          bmp->Canvas->CopyRect(rect,canvas,rect);  
          bmp->SaveToFile("c://zbc.bmp");  
      }  
      __finally  
      {  
        delete   canvas;  
        delete   bmp;  
      }  
  }  
---------------------------------------------------------------------------------------------------------------------------------------

(2)

void   CScreenCaptureDlg::OnLButtonUp(UINT   nFlags,   CPoint   point)      
   
  {      
  //得到鼠标所在处的窗口的区域宽、高      
  int   nWidth=rectCapture.Width();    
  int   nHeight=rectCapture.Height();    
  HDC   hdcScreen,   hMemDC;      
  HBITMAP   hBitmap,   hOldBitmap;      
  //建立一个屏幕设备环境句柄    
  hdcScreen   =   CreateDC("DISPLAY",   NULL,   NULL,   NULL);    
  hMemDC   =   CreateCompatibleDC(hdcScreen);    
  //建立一个与屏幕设备环境句柄兼容、与鼠标所在处的窗口的区域等大的位图    
  hBitmap   =   CreateCompatibleBitmap(hdcScreen,   nWidth,   nHeight);    
  //   把新位图选到内存设备描述表中    
  hOldBitmap   =(HBITMAP)SelectObject(hMemDC,   hBitmap);    
  //   把屏幕设备描述表拷贝到内存设备描述表中    
  BitBlt(hMemDC,   0,   0,   nWidth,   nHeight,   hdcScreen,rectCapture.left,rectCapture.top,SRCCOPY);    
  //取回鼠标所在处的窗口屏幕位图的句柄    
  hBitmap   =(HBITMAP)SelectObject(hMemDC,   hOldBitmap);    
  DeleteDC(hdcScreen);    
  DeleteDC(hMemDC);    
   
  //   返回位图句柄    
  //打开剪贴板,并将位图拷到剪贴板上    
  OpenClipboard()   ;    
  EmptyClipboard();    
  SetClipboardData(CF_BITMAP,   hBitmap);    
  //关闭剪贴板    
  CloseClipboard();    
   
  MessageBox("屏幕内容已经拷到剪贴板上!");    
  //终止鼠标捕获    
  ReleaseCapture();    
  //恢复窗口显示模式    
  ShowWindow(SW_NORMAL);    
   
  }    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值