SetWindowExtEx

        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个单位,视图区域是窗口区域的一半,即在窗口中显示的内容 是窗口原内容的一半,这样就实现了原图的放大,就像作图工具中的放大小效果。窗口区域不变时,视图区域越小,就能看到更详细的图像细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值