65,187
社区成员




[例Ex_Draw] 通过设置窗口和视口大小来改变显示的比例。
(1) 创建一个默认的单文档应用程序Ex_Draw。
(2) 在CEx_DrawView::OnDraw函数中添加下列代码:
void CEx_DrawView::OnDraw(CDC* pDC)
{ CEx_DrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rectClient;
GetClientRect(rectClient); // 获得当前窗口的客户区大小
pDC->SetMapMode(MM_ANISOTROPIC); // 设置MM_ANISOTROPIC映射模式
pDC->SetWindowExt(1000,1000); // 设置窗口范围
pDC->SetViewportExt(rectClient.right,-rectClient.bottom);// 设置视口范围
pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);
pDC->Ellipse(CRect(-500,-500,500,500));
}
(3)编译运行,如图
// CFuck2View drawing
void CFuck2View::OnDraw(CDC* pDC)
{
CFuck2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rectClient;
GetClientRect(rectClient); // 获得当前窗口的客户区大小
pDC->SetMapMode(MM_ANISOTROPIC); // 设置MM_ANISOTROPIC映射模式
pDC->SetWindowExt(1000,1000); // 设置窗口范围
pDC->SetViewportExt(rectClient.right,-rectClient.bottom);// 设置视口范围
pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);
pDC->Ellipse(CRect(-500,-500,500,500));
}
// CwuwuView 绘制
void CwuwuView::OnDraw(CDC* /*pDC*/)
{
CwuwuDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CRect rectClient;
GetClientRect(rectClient); // 获得当前窗口的客户区大小
pDC->SetMapMode(MM_ANISOTROPIC); // 设置MM_ANISOTROPIC映射模式
pDC->SetWindowExt(1000,1000); // 设置窗口范围
pDC->SetViewportExt(rectClient.right,-rectClient.bottom);// 设置视口范围
pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);
pDC->Ellipse(CRect(-500,-500,500,500));
}