武汉大学遥感院gp苹svc编程.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
武汉大学遥感院gp苹svc编程

与图形学相关的VC编程 目的: 掌握与图形学相关的基本的VC编程方法 要求: 平时作业用VC完成 作为本课程的平时作业成绩,最终上交一个包含基本方法的计算机图形学演示软件。 VC程序框架的建立 步骤: 打开VC++6.0软件,File→New → Projects →MFC AppWizard(exe) →Project Name: test →OK Single Document →Next →Next →Next →Next →As a statically linked library →Next →Finish →OK 至此,一个框架建好 编译框架:build →build test.exe 运行程序: build →execute test.exe VC框架四个类介绍 主框架类(CMainFrame):管理窗口 应用类(CTestApp):对有关部分进行管理和调度 文档类(CTestDoc):管理程序数据 视图类(CTestView):管理图形显示 文档类、视图类是我们编程要涉及到的主要类 增加菜单 框架提供给我们的四个菜单,不是我们需要的,要增加自己的菜单。步骤如下: 打开程序框架 File →Open WorkSpace… →打开test目录→test.dsw →打开 打开菜单资源 ResourceView →test Resource →Menu → IDR_MAINFRAME 增加菜单项 右击空白框→Properties →Caption:直线生成→右击下方空白框→Properties →Caption:DDA直线→ID:ID_LINE_DDA →关闭对话框 编译运行程序,菜单项为灰色,无法运行,要为它编程序 编写DDA直线生成程序前,为鼠标操作做准备,因为我们要用鼠标来画线 Windows事件驱动机制 Windows系统设置了许多事件,如按键盘,动鼠标,打开、关闭窗口等,它们用以WM_开头的变量标识。 Windows系统自动检测这些事件,当事件发生时,如按下鼠标左键,系统马上通知应用程序,应用程序有机会对事件做出反应。如何反应,需要编程实现。 我们设计画直线时鼠标事件反应方式如下: 按左键定点;按右键结束定点,开始画线;鼠标移动时显示鼠标位置。 需要的事件是:按左键,按右键,鼠标移动。 增加鼠标事件响应程序框架 左键事件步骤: 打开程序框架→View →ClassWizard… → ClassName:CTestView(即鼠标响应程序放在视图类中) →Messages:WM_LBUTTONDOWN → Add Function →Edit Function 可以看到TestView.cpp(视图类程序)增加了一个函数OnLButtonDown,目前只是一个空框架 用同样的方法增加右键、鼠标移动框架,方法同上,只是在Messages下拉表中分别选WM_RBUTTONDOWN,WM_MOUSEMOVE事件。 说明:鼠标事件一般在图上操作时发生,所以其响应函数放在视图类中 鼠标坐标显示(1) 为了精确定点,必须知道当前坐标,因此必须为操作者提示鼠标坐标。准备将坐标显示在应用程序窗口的左下脚。 步骤如下: 修改主框架类 注销mainfrm.h中的变量 // CStatusBar m_wndStatusBar; 在mainfrm.cpp前部中声明为全程变量 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif CStatusBar m_wndStatusBar; 鼠标坐标显示(2) 将 static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; 改为 static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_SEPARATOR, // status line indicator ID_SEPARATOR, // status line indicator ID_SEPARATOR, // status line indicator }; 鼠标坐标显示(3) 将CMainFrame::OnCreate函数中的 if (!m_wndToolBar.CreateEx(this, TBST

文档评论(0)

134****9291 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档