- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC编程速成手册
VC++程序设计速成 陈临强 为什么要学VC++ VC++成了计算机专业学生的编程专利 VC++可以很快地进入WINDOWS界面的编程 VC++具有很大、很高速的类,适应各种应用 VC++几乎成了所有通用程序的编程工具,如ACAD,PS,3DMAX等均用VC++编程 VisualC++集成环境 VC++开发流程 工程的创建、打开与关闭 创建新的工程File/New,通过AppWizard完成,可以指定各种参数,如窗体参数等,工程将放在目录中。其中\res子目录存放资源文件,含图片资源文件等;\Debug目录含obj、exe等文件。 调入已有工程File/Open Workspace,选择打开工作区文件.dsw。 关闭当前工程File/Close Workspace。 练习一:创建一个工程MyFirst 通过AppWiziard创建一个工程MyFirst 编译并执行MyFirst,了解执行结果 打开并使用ClassView和FileView 关闭工程,并退出VC++环境 在硬盘上找到工程所在目录,查看文件并思考 重新进入VC++,并打开MyFirst工程 VC++的运行机制 VC++通过AppWizard自动生成的基本类,分别管理了窗体框架、运行控制、版本信息、文档和视图,我们主要通过文档与视图进行编程 运行控制主要通过循环消息处理来进行。消息包括鼠标、键盘、菜单、工具栏、自定义消息等,消息均以资源ID标识,ID号一般取名见下页表。 通过类向导ClassWizard对消息添加消息响应程序,程序间经常通过成员变量来传递数据,而不是简单的程序相互调用 MFC中资源标识符前缀 VC++程序设计基本步骤 添加菜单资源-ID号 添加图标资源-ID号 为菜单和图标添加处理程序 设计环境界面(如游戏界面) 设计规则与算法 调试程序(F9,F5,F10,F11) 视图绘制方式 VIEW类中的OnDraw(CDC *pDC)用来重绘视图,CDC类是MFC中的常用类,提供所有视图的绘制操作,如画图、画图片、字符串输出等。 VIEW类程序中需重绘调用Invalidate(); DOC类程序中需重绘调用UpdataAllView(); 若要不调用OnDraw()重绘,单独绘制需用CClientDC dc(this)来申请CDC类dc; CDC类中基本的绘图成员函数 练习二:视图中绘制图形 进入VC++,并打开MyFirst工程 通过FileView 打开MyFirstView.cpp和MyFirstView.h 使用ClassViewr定位OnDraw(),并添加一些图形函数,熟悉相关函数的参数使用 编译并执行MyFirst,了解执行结果 资源编辑器使用 图标编辑器 工具栏编辑器 串表编辑器 版本信息编辑器 练习三:资源编辑器使用实例 练习四:绘图小系统 绘制直线、椭圆、矩形和多边形四种 菜单设计:主菜单绘图,下有四个子菜单 工具栏设计:四个工具栏图标 快捷键设计:L、E、R、P作为四种图形的切换选择,不论大小写。 鼠标交互:鼠标左键按下到抬起,根据当前菜单,画出四种图形之一 自行设计桌面运行程序图标(大图标)和程序执行主图标(小图标) 菜单设计(MENU) 菜单添加消息处理函数 工具栏设计(TOOLBAR) 图标编辑器 快捷键编辑 菜单程序设计 在VIEW.H中设计菜单枚举常量定义 enum {EMPTY,LINE,ELLIPSE,RECTANGLE}; 在VIEW类中添加菜单选择变量 如:m_menu,在构造函数中置初值m_menu=EMPTY; 与菜单的画图ID号,如ID_LINE号相关的处理程序添加语句 如:m_menu=LINE; 绘图处理程序设计 void CGraphView::DrawGraph() { CClientDC dc(this) ; dc.SelectStockObject(NULL_BRUSH) ;;//不填充绘图 switch( m_menu ) { case EMPTY : break ; case LINE ://画线 dc.MoveTo(m_p0) ; dc.LineTo(m_p1) ; break ; case ELLIPSE ://画椭圆 dc.Ellipse(m_p0.x, m_p0.y, m_p1.x, m_p1.y) ; break ; case RECTANGLE ://画矩形 dc.Rectangle(m_p0.x, m_p0.y, m_p1.x, m_p1.y) ; break ; } } 鼠标程序设计 在VIEW类中添加坐标变量CPoint m_p0, m_p1; 添加鼠标消息WM_LBUTTONDOWN处理程序 m_p
文档评论(0)