虚拟屏幕

所有监视器的边框是 虚拟屏幕。 桌面覆盖虚拟屏幕,而不是单个监视器。 下图显示了三个监视器的可能排列方式。

显示三个框的插图,这些框表示在表示虚拟屏幕的框中排列的监视器

主监视器包含源 (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