关于屏幕截取
作者:互联网
有时候需要将一个补挡住或者隐藏的窗口实时截取出窗口状态
常用的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);
}
标签:control,IntPtr,hmemdc,hWnd,截取,hscrdc,关于,hbitmap,屏幕 来源: https://www.cnblogs.com/ice-arrow/p/11981046.html