网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
捕捉屏幕的时候包含鼠标
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

默认情况下屏幕捕捉下来的内容不包含鼠标的,但是可以把鼠标画到捉下来的图像里面

LPBITMAPINFOHEADER captureScreenFrame(int left,int top,int width, int height,int tempDisableRect)
{
#ifndef _DIRECTX_captureScreenFrame
HDC hScreenDC = ::GetDC(NULL);
#else
theApp.DirectXInit();
#endif

//if flashing rect
if (flashingRect && !tempDisableRect) {

  if (autopan) {    
      
   pFrame->SetUpRegion(left,top,width,height,1);    
   DrawFlashingRect( TRUE , 1);   

  }
  else  
   DrawFlashingRect( TRUE , 0);

}

#ifndef _DIRECTX_captureScreenFrame
HDC hMemDC = ::CreateCompatibleDC(hScreenDC);     
HBITMAP hbm;

    hbm = CreateCompatibleBitmap(hScreenDC, width, height);
HBITMAP oldbm = (HBITMAP) SelectObject(hMemDC, hbm);  
BitBlt(hMemDC, 0, 0, width, height, hScreenDC, left, top, SRCCOPY);   
#else
theApp.DirectXCapture(left, top,width, height);
HDC hMemDC = NULL;
theApp.DirectXGetDC(hMemDC);
#endif

//Get Cursor Pos
POINT xPoint;
GetCursorPos( &xPoint );
HCURSOR hcur= FetchCursorHandle();
xPoint.x-=left;
xPoint.y-=top;


//Draw the HighLight
if (g_highlightcursor==1) {

  POINT highlightPoint;   

  highlightPoint.x = xPoint.x -64 ;
  highlightPoint.y = xPoint.y -64 ;  
  
  InsertHighLight( hMemDC, highlightPoint.x, highlightPoint.y);

}

//Draw the Cursor
if (g_recordcursor==1) {


  
  ICONINFO iconinfo ;
  BOOL ret;
  ret = GetIconInfo( hcur,  &iconinfo );
  if (ret) {

   xPoint.x -= iconinfo.xHotspot;
   xPoint.y -= iconinfo.yHotspot;

   //need to delete the hbmMask and hbmColor bitmaps
   //otherwise the program will crash after a while after running out of resource
   if (iconinfo.hbmMask) DeleteObject(iconinfo.hbmMask);
   if (iconinfo.hbmColor) DeleteObject(iconinfo.hbmColor);

  }  
  
  
  ::DrawIcon( hMemDC,  xPoint.x,  xPoint.y, hcur);        

}
//CString strText=COleDateTime::GetCurrentTime().Format();
//CRect rc(0,0,640,480);
    //DrawText(hMemDC,strText,-1,&rc,DT_LEFT);
#ifndef _DIRECTX_captureScreenFrame  
SelectObject(hMemDC,oldbm);     
LPBITMAPINFOHEADER pBM_HEADER = (LPBITMAPINFOHEADER)GlobalLock(Bitmap2Dib(hbm, bits));
//LPBITMAPINFOHEADER pBM_HEADER = (LPBITMAPINFOHEADER)GlobalLock(Bitmap2Dib(hbm, 24));
#else
theApp.DirectXReleaseDC(hMemDC);
LPBITMAPINFOHEADER pBM_HEADER = (LPBITMAPINFOHEADER)GlobalLock(theApp.DirectXGetCaptureBitmap(bits));
#endif
if (pBM_HEADER == NULL) {
   
 &nbs

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号