请输入您要查询的百科知识:

 

词条 SetWindowExtEx
释义

SetWindowExtEx函数

语法

BOOL SetWindowExtEx( __in HDC hdc, __in int nXExtent, __in int nYExtent, __out LPSIZE lpSize);

参数

HDC

A到设备上下文句柄。

nXExtent

窗口的水平范围的逻辑单位。

nYExtent

窗口的垂直程度的逻辑单位。

lpSize[输出]

一个指向指针的尺寸在逻辑结构,接收单位的上一个窗口范围。如果lpSize是NULL,这个参数是无法使用。

返回值

如果函数成功,返回值为非零。

如果函数失败,返回值为零。

参考

如SetWindowExtEx(hDC,600,400,NULL); //设置窗口区域,逻辑坐标 把窗口大小设置为宽(X坐标方向)600 (Y坐标方向)高400 是程序把图像映像成实物时采用的坐标 是逻辑上的

SetViewportExtEx(hDC,300,200,NULL); //设置视图区域,物理坐标 把输出时(程序运行时)看到的界面区域的坐标为宽(X坐标方向)300 高(Y坐标方向)200 是实实在在的300 和200

他们的联系是他们的坐标原点都是程序运行时窗口的左上角 他们的区域大小也是相同的(重合的 就像两张大小相同的画布重叠在一起)只是各自的坐标不同罢了 即一个点在两个坐标系中的x,y参数大小不同 但他们彼此之间的比列是相同的

而且还要注意SetViewportExtEx就相当于在程序的窗口上从左上角开始画一个(我的例子是300 和200)区域 若不进行设定 则视口区域就等于应用程序窗口大小

用GetWindowExtEx与GetViewportExtEx看一下原值,全是1,感觉SetWindowExtEx与SetViewportExtEx只设定了窗口(逻辑坐标)与视口(设备坐标)的比值。如上,SetWindowExtEx(hDC,600,400,NULL);SetViewportExtEx(hDC,300,200,NULL);只是把两个逻辑映射成为一个物理单位。窗口大小超过(600,400),且做图也超过(600,400)时,依然能显示。当窗口小于(600,400)且在窗口外与(600,400)之间做图,依然不显示。所以感觉SetWindowExtEx与SetViewportExtEx只设置了一个比较,而不是真正窗口与视口的大小。 望高手指正!

SetWindowExtEx(hDC,600,400,NULL);设置窗口区域 为 600*400个单位;

SetViewportExtEx(hDC,300,200,NULL); 设置视图区域 为300*200个单位,视图区域是窗口区域的一半,即在窗口中显示的内容 是窗口原内容的一半,这样就实现了原图的放大,就像作图工具中的放大小效果。窗口区域不变时,视图区域越小,就能看到更详细的图像细节。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/17 6:26:45