Windows所有监视器的边界矩形就是虚拟屏幕。桌面覆盖虚拟屏幕,而不是单个显示器。下图显示了三台显示器的可能排列。
主监视器包含原点(0,0)。这是为了与现有应用程序兼容,这些应用程序需要一个带原点的监视器。然而,主监视器不一定要在虚拟屏幕的左上方。在图1中,它靠近中心。当主监视器不在虚拟屏幕的左上方时,部分虚拟屏幕具有负坐标。因为显示器的排列是由用户设置的,所以所有的应用程序都应该设计为使用负坐标。有关更多信息,请参见旧程序的多监视器注意事项。 虚拟屏幕的坐标由带符号的16位值表示,因为许多现有消息中都包含16位值。因此,虚拟屏幕的边界是:
SHORT_MIN <= rcVirtualScreen.left <= SHORT_MAX - 1
SHORT_MIN +1 <= rcVirtualScreen.right <= SHORT_MAX
SHORT_MIN <= rcVirtualScreen.top <= SHORT_MAX - 1
SHORT_MIN +1 <= rcVirtualScreen.bottom <= SHORT_MAX