当我们在Windows程序中绘制图形时,不同的窗口、设备、分辨率会导致图形的大小和位置不同。在这种情况下,了解坐标和映射是非常重要的。
首先,坐标是指用于定位画布上点的一组数值。在Windows程序中,通常有两种坐标:逻辑坐标和设备坐标。
逻辑坐标是与窗口或屏幕的实际大小无关的抽象坐标,它表示需要展示的图形和文字的大小和位置。例如,当我们在一个600x400的窗口中画一个圆形时,逻辑坐标可以定位这个圆形的中心点坐标(300,200),而不受窗口大小的影响。
而设备坐标则是与显卡和屏幕分辨率相关的实际坐标,它是在显示图形时要用到的坐标。例如,当我们使用设备坐标画一个宽度为1像素的线时,它实际上是在显卡上分配的一组数字,并不是在逻辑坐标中展现的样子。
Windows系统提供了一种映射机制,可以将逻辑坐标和设备坐标互相转换,使得我们能够实现图形在不同窗口和不同屏幕上的大小和位置的统一性。
为什么要映射?因为不同的窗口和设备分辨率大小不同,如果我们在不同的窗口和分辨率下使用相同的逻辑坐标来绘制图形,就会导致图形的大小和位置不一致。映射的目的是使绘制的图形具有可移植性,可以在不同的设备和窗口上具有相同的视觉效果。
所以,了解坐标和映射是编写Windows图形应用程序的重要部分。明确逻辑坐标和设备坐标的区别,较好地掌握映射机制,可以在不同的设备和窗口上绘制具有一致视觉效果的图形。