所以,我有一个屏幕截图实用程序(它需要全屏截图并将其保存到png文件)我已经写过了,它使用SM_CXVIRTUALSCREEN
和SM_CYVIRTUALSCREEN
来确定宽度和高度桌面。
然后我获取桌面DC并复制出来并将它们保存为png。
BitBlt( backDC, 0, 0, backBufferCX, backBufferCX, desktopDC, X_SRC, 0, SRCCOPY );
此处X_SRC
通常为0,除非桌面已“延伸至左侧”。在这种情况下,例如,如果左侧监视器测量为1280px,则需要为-1280px。
如何判断桌面的起始点是否为负(如果用户将桌面扩展到左侧?)
答案 0 :(得分:2)
您可以通过EnumDisplayMonitors方法获取所有监视器的定位信息。
或者,如果您只关心虚拟屏幕的角落,则可以将SM_XVIRTUALSCREEN
和SM_YVIRTUALSCREEN
传递到GetSystemMetrics
方法。
答案 1 :(得分:1)
您应该使用GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN)
作为BitBlt