一,窗口旋转简介
窗口旋转会影响源坐标系。
窗口的旋转由其SCREEN_PROPERTY_ROTATION属性描述。在这种情况下,旋转一词不是指对象围绕轴或中心旋转的真正旋转。屏幕的窗口旋转实际上是一种包括旋转、平移和缩放的变换。当你改变这个属性时,你实际上是在改变相关窗口的源(或缓冲区)坐标系。这种变换是窗口内容旋转的方式。在按SCREEN_PROPERTY_ROTATION属性指定的源坐标旋转后,Screen对内容应用平移和缩放,以适应窗口尺寸的边界(如果适用)。如果需要,你可以通过设置窗口的SCREEN_PROPERTY_SCALE_MODE属性来修改这种缩放行为,以适应你的应用程序。
更改窗口的旋转不影响其大小或位置,因为这些是与显示相关的属性。有关显示和源坐标系的更多信息,请参阅“窗口属性”部分。
二,示例
以下示例显示了将窗口的 SCREEN_PROPERTY_ROTATION 属性设置为 90(实现顺时针旋转 90 度)时发生的情况:
- 窗口和缓冲区的大小相同(1280 x 720),并且起始位置相同。窗口的位置在显示坐标系中为(0d,0d)。窗口的缓冲区在源坐标系中为(0s,0s)的位置。在应用任何旋转之前,坐标系相互对齐。也就是说,位置(0d,0d)和(0s,0s)表示相同的位置。它们分别表示窗口和缓冲区的左上角。
下图是一个窗口和缓冲区处于初始状态;