|
TOP
|
|
图形基础(六十四)
|
600,1800);' src="G05zg08.gif" width="272" height="116" border="0" />
Windows
98不允许在显示区域的右边超越x轴的范围之外显示任何东西,因为这需要一个大於16位元所能表示的座标。Windows
NT使用全32位元座标,您可以在超出右边显示一些东西。
如果显示区域的高度大於宽度(以实际尺寸为准),那么Windows将调整y的范围。这样,逻辑视窗将放置在显示区域的下边:

Windows
98不允许在显示区域的顶部显示任何东西。
如果您希望逻辑视窗总是放在显示区域的左上部,那么将前面给出的程式码改为:
在呼叫SetWindowOrgEx中,我们要求将逻辑点(0,
32767)映射为装置点(0,0)。现在,如果显示区域的高大於宽,则座标系将安排为:
对於时钟程式,您也许想要使用一个四象限的笛卡尔座标系,四个方向的座标尺度可以任意指定,(0,0)
必须居於显示区域的中央。如果您想要每条轴的范围从0到1000,则可以使用以下程式码:
SetMapMode (hdc, MM_ISOTROPIC) ; SetWindowExtEx (hdc, 1000, 1000, NULL) ; SetViewportExtEx (hdc, cxClient / 2, -cyClient / 2, NULL) ; SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ;
如果显示区域的宽度大於高度,则逻辑座标系形如:

如果显示区域的高度大於宽度,那么逻辑座标也会居 |
|