首页 > 其他 > 详细

关于屏幕截取

时间:2019-12-04 10:42:27      阅读:77      评论:0      收藏:0      [点我收藏+]

有时候需要将一个补挡住或者隐藏的窗口实时截取出窗口状态

常用的bitblt()

可以将源设备区域像素拷贝到目标区域,而在窗口挡住或者隐藏的情况下就无能为力了

这个时候可以用PrintWindow,不论是窗口被隐藏,或者被挡住都能截出想要的区域

 

    IntPtr hscrdc = GetWindowDC(hWnd);
              Control control = Control.FromHandle(hWnd);
              IntPtr hbitmap = CreateCompatibleBitmap(hscrdc, control.Width, control.Height);
              IntPtr hmemdc = CreateCompatibleDC(hscrdc);
              SelectObject(hmemdc, hbitmap);
              bool re= PrintWindow(hWnd, hmemdc, 0);
              Bitmap bmp = null;
              if(re)
              {
                 bmp = Bitmap.FromHbitmap(hbitmap);                  
              }

关于屏幕截取

原文:https://www.cnblogs.com/ice-arrow/p/11981046.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!