SetWindowExtEx
Windows函数名称
SetWindowExtEx,Windows函数名称。该函数的作用是以指定的值为设备环境设置窗口的水平的和垂直的范围。
语法
BOOL SetWindowExtEx( __in HDC hdc, __in int nXExtent, __in int nYExtent, __out LPSIZE lpSize);
参数
HDC
设备环境句柄。
nXExtent
以逻辑单位给出的窗口的水平范围
nYExtent
以逻辑单位给出的窗口的垂直范围
lpSize[输出]
一个指向SIZE结构的指针,该结构保存了先前的窗口的范围,如果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个单位,视图区域是窗口区域的一半,即在窗口中显示的内容 是窗口原内容的一半,这样就实现了原图的放大,就像作图工具中的放大小效果。窗口区域不变时,视图区域越小,就能看到更详细的图像细节。
参考资料
最新修订时间:2024-11-21 14:50
目录
概述
语法
参数
返回值
参考资料