五、GDI映像方式—「自行决定」的映像方式
剩下的两种映像方式为MM_ISOTROPIC和MM_ANISOTROPIC。只有这两种映像方式可以让您改变视端口和窗口范围,也就是说可以改变Windows用来转换逻辑和设备坐标的换算因子。「isotropic」的意思是「同方向性」;「anisotropic」的意思是「异方向性」。与上面所讨论的度量映射方式相似,MM_ISOTROPIC使用相同的轴,x轴上的逻辑单位与y轴上的逻辑单位的实际尺寸相等。这对您建立纵横比与显示比无关的图像是有帮助的。
MM_ISOTROPIC与度量映像方式之间的区别是,使用MM_ISOTROPIC,您可以控制逻辑单位的实际尺寸。如果愿意,您可以根据显示区域的大小来调整逻辑单位的实际尺寸,从而使所画的图像总是包含在显示区域内,并相应地放大或缩小。例如, 第八章的两个时钟程序就是方向同性的例子。在您改变窗口大小时,时钟也相应地调整。
Windows程序完全可以通过调整窗口和视端口范围来处理图像大小的变化。因此,不管窗口尺寸怎样变,程序都可以在绘图函数中使用相同的逻辑单位。
有时候MM_TEXT和度量映像方式称为「完全局限性」映像方式,这就是说,您不能改变窗口和视端口的范围以及Windows将逻辑坐标换算为设备坐标的方法。MM_ISOTROPIC是一种「半局限性」的映像方式,Windows允许您改变窗口和视端口范围,但只是调整它们,以便x和y逻辑单位代表同样的实际尺寸。MM_ANISOTROPIC映像方式是「非局限性」的,您可以改变窗口和视端口范围,但是Windows不调整这些值。
MM_ISOTROPIC与度量映像方式之间的区别是,使用MM_ISOTROPIC,您可以控制逻辑单位的实际尺寸。如果愿意,您可以根据显示区域的大小来调整逻辑单位的实际尺寸,从而使所画的图像总是包含在显示区域内,并相应地放大或缩小。例如, 第八章的两个时钟程序就是方向同性的例子。在您改变窗口大小时,时钟也相应地调整。
Windows程序完全可以通过调整窗口和视端口范围来处理图像大小的变化。因此,不管窗口尺寸怎样变,程序都可以在绘图函数中使用相同的逻辑单位。
有时候MM_TEXT和度量映像方式称为「完全局限性」映像方式,这就是说,您不能改变窗口和视端口的范围以及Windows将逻辑坐标换算为设备坐标的方法。MM_ISOTROPIC是一种「半局限性」的映像方式,Windows允许您改变窗口和视端口范围,但只是调整它们,以便x和y逻辑单位代表同样的实际尺寸。MM_ANISOTROPIC映像方式是「非局限性」的,您可以改变窗口和视端口范围,但是Windows不调整这些值。