屏幕捕捉特定窗口

是否有可能屏幕捕获特定的窗口(也可能是另一个进程)?

目前我正在捕获特定监视器的整个桌面,但是我真正想要的是捕获特定窗口的内容(不pipe其位置)。

Solutions Collecting From Web of "屏幕捕捉特定窗口"

是的。 所有你需要的是获取你想要捕获的窗口的句柄,并使用WinAPI函数PrintWindow,例如:

 // Get the window handle of calculator application. HWND hWnd = ::FindWindow( 0, _T( "Calculator" )); // Take screenshot. PrintWindow( hWnd, getDC(hWnd), 0 ); 

这里有PrintWindow文档。

是的,就像捕捉全屏一样简单。 您只需在所需的窗口上使用GetWindowDC() ,而不是GetDesktopWindow() ,然后使用BitBlt()从您的目标DC。 您还可以使用GetWindowRect()获取正确的大小。

请注意,此方法还允许您从隐藏/覆盖的窗口中捕获具有边界矩形的完整屏幕截图。

看到这个问题的一些更多的细节。