MFC的坐标系.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC的坐标系

MFC的坐标系 MFC的坐标系.txt33学会宽容,意味着成长,秀木出木可吸纳更多的日月风华,舒展茁壮而更具成熟的力量。耐力,是一种不显山石露水的执着;是一种不惧风不畏雨的坚忍;是一种不图名不图利的忠诚。关于MFC的坐标系MFC和VC++ 2008-08-11 17:08:06 阅读108 评论0 字号:大中小 订阅 建立以左上角为原点,X轴和Y轴为1000的坐标 我们可以用以下代码: void CTtView::OnDraw(CDC* pDC) { CTtDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(rect); pDC-SetMapMode(MM_ANISOTROPIC); pDC-SetViewportOrg(0,0); pDC-SetViewportExt(rect.right,rect.bottom); pDC-SetWindowOrg(0,0); pDC-SetWindowExt(1000,1000); pDC-MoveTo(50,50); pDC-LineTo(50,950); pDC-LineTo(950,950); pDC-LineTo(50,50); } 代码分析: 1. GetClientRect(rect); 取得客户区矩形区域,将其存放在rect中 2. 用pDC-SetMapMode(MM_ANISOTROPIC); 设置映射模式 3. 通过pDC-SetViewportOrg(0,0);设置逻辑坐标的原点 4. 通过pDC-SetViewportExt(rect.right,rect.bottom);和 pDC-SetWindowExt(1000,1000);来确定逻辑坐标下和设备坐标下的尺寸对应关系 5. 在MM_ANISOTROPIC模式下,X轴单位和Y轴单位可以不相同 6. 坐标方向的确定方法是如果逻辑窗范围和视口范围符号相同,则逻辑坐标的方向和视口的方向相同,即X轴向右为正,Y轴向下为正。 7. 如果将显示模式改为MM_ISOTROPIC,那么X轴单位和Y轴单位一定相同,感兴趣的读者可以自己使一下。 (二) 建立以视窗中心为原点的坐标 用如下代码: void CTtView::OnDraw(CDC* pDC) { CTtDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(rect); pDC-SetMapMode(MM_ANISOTROPIC); pDC-SetViewportOrg(rect.right/2,rect.bottom/2); pDC-SetViewportExt(rect.right,rect.bottom); pDC-SetWindowOrg(0,0); pDC-SetWindowExt(1000,-1000); pDC-MoveTo(150,150); pDC-LineTo(-150,-200); pDC-LineTo(150,-150); pDC-LineTo(150,150); } 代码分析: 1. 用 pDC-SetViewportOrg(rect.right/2,rect.bottom/2); 设置视口的原点。 2. 用pDC-SetViewportExt(rect.right,rect.bottom);和pDC-SetWindowExt(1000,-1000);来确定设备坐标和逻辑坐标的单位对应关系。 3. 因为逻辑窗范围和视口范围的符号不一致,纵坐标取反,所以Y轴向上为正。 参考资料:http://www.1to2.us/VC-a154643.htm 1、添加工具栏资源ID为IDR_TOOLBAR 2、在对话框的类定义中加: CToolBar m_ToolBar; 3、在OnInitDialog中或其它合适的消息响应中加如下代码:(函数可查看MSDN) m_ToolBar.Create(this); //创建工具栏 m_ToolBar.LoadToolBar(IDR_TOOLBAR);//加载工具栏 //得出控件条大小. CRect rect; CRect rectNow; GetClientRect(rect); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rectNow); //放置控件条位置 CPoint ptOffset(rectNow.left-r

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档