int x = GetSystemMetrics(SM_XVIRTUALSCREEN); //left (e.g. -1024)
int y = GetSystemMetrics(SM_YVIRTUALSCREEN); //top (e.g. -34)
int cx = GetSystemMetrics(SM_CXVIRTUALSCREEN); //entire width (e.g. 2704)
int cy = GetSystemMetrics(SM_CYVIRTUALSCREEN); //entire height (e.g. 1050)
5条答案
按热度按时间ulmd4ohb1#
字符串
xxslljrj2#
1.使用
GetDC(NULL);
为整个屏幕获取DC。1.使用
CreateCompatibleDC
创建与屏幕DC兼容的DC。1.使用
CreateCompatibleBitmap
创建一个与屏幕DC兼容的位图来保存结果。1.使用
SelectObject
选择兼容的位图到兼容的DC中。1.使用
BitBlt
从屏幕DC复制到兼容的DC。1.使用
SelectObject
从兼容DC中删除兼容位图。1.使用
DeleteDC
删除兼容的DC。创建兼容位图时,您希望它与屏幕DC兼容,而不是与兼容DC兼容。
举例来说,您可以:
字符串
另一个重要的部分是获取整个虚拟屏幕的大小和位置:
型
fumotvh33#
字符串
v1uwarro4#
使用Windows API在当前窗口站保存所有监视器的原始24位位图的完整代码:
字符串
ktca8awb5#
有一个MSDN示例,Capturing an Image,用于捕获任意HWND到DC(您可以尝试将GetDesktopWindow的输出传递给此)。