SetWindowExt() 与SetViewportExt()

本文介绍如何使用SetWindowExt和SetViewportExt进行坐标变换,实现窗口和视口尺寸的设定,并通过示例展示如何绘制椭圆。
SetWindowExe设定窗口尺寸,SetViewportExt设定视口尺寸。
窗口尺寸以逻辑单位计算,视口尺寸以物理单位计算。
CRect rectClient;

GetClientRect(rectClient);//取窗口物理尺寸(单位:像素)
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(1000, 1000);//窗口逻辑大小:1000*1000,
pDC->SetViewportExt(rectClient.right, -rectClient.bottom);//改变Y坐标方向--viewport使用物理大小
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 2);//设置窗口中心点为坐标系原点--Viewport使用物理大小

pDC->Ellipse(CRect(-500, -500, 500, 500));//以逻辑单位画图---普通GDI API使用逻辑单位

默认方式下,物理/逻辑值是1:1关系,可换用。但使用SetWindowExt/SetViewportExt后两者不可混用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值