使用用户自定义映射模式,设置窗口
程序员文章站
2022-04-04 12:30:10
...
*void CbezierView::OnDraw(CDC* pDC) //OnDraw 函数是由系统框架直接调用
{
CbezierDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);*
**
1 CRect rect; //声明客户区矩形
2 GetClientRect(&rect); //获得客户区坐标
3 pDC->SetMapMode(MM_ANISOTROPIC); //设置映射模式
4 pDC->SetWindowExt(rect.Width(), rect.Height()); //设置窗口
5 pDC->SetViewportExt(rect.Width(), rect.Height());//x轴水平向右,y轴垂直向上
6 pDC->SetViewportOrg(rect.Width(), rect.Height());//客户区中心为坐标系原点
**
/*if (!pDoc)
return;*/
// TODO: 在此处为本机数据添加绘制代码
}
程序解释:代码的第1行语句声明CRect类矩形对象rect。
第2行语句使用CWnd类的类的成员函数获得客户区坐标。第3行语句设置映射模式为。
第4行语句设置窗口范围,窗口的cx和cy参数取为客户区的宽度和高度且均为正值。
第5行语句设置视区范围,视区的cx和cy参数取为客户区的宽度和高度,且cx为正值cy为负值。
说明窗口的1个逻辑坐标映射为视区的1个像素且y轴向上。
第6行语句设置客户区中心为设备坐标系原点。
本例程使用MM映射模式定义窗口大小为客户区大小,视区的x轴水平向右为正,y轴垂
直向上为正,二维坐标系原点位于屏幕客户区中心。