VC开发环境使用.ppt

上传人:小飞机 文档编号:6522778 上传时间:2023-11-08 格式:PPT 页数:93 大小:717.01KB
返回 下载 相关 举报
VC开发环境使用.ppt_第1页
第1页 / 共93页
VC开发环境使用.ppt_第2页
第2页 / 共93页
VC开发环境使用.ppt_第3页
第3页 / 共93页
VC开发环境使用.ppt_第4页
第4页 / 共93页
VC开发环境使用.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《VC开发环境使用.ppt》由会员分享,可在线阅读,更多相关《VC开发环境使用.ppt(93页珍藏版)》请在三一办公上搜索。

1、2023/11/8,1,Visual C+6.0开发环境,2023/11/8,2,内容提要,Visual C+及其开发环境Visual C+的菜单栏资源及资源编辑器项目与项目工作区联机帮助,2023/11/8,3,Visual C+6.0及其开发环境,2023/11/8,4,Visual C+6.0及其开发环境,Visual C+开发环境特点:集成化的开发环境;可视化交互式的界面;与Win32紧密相连;Windows环境下最主要的开发系统之一;强大的调试功能,有效的排错手段。,2023/11/8,5,Visual C+6.0 的菜单栏,2023/11/8,6,File,Edit,View,In

2、sert,Go Next,Visual C+6.0的菜单栏,2023/11/8,7,Project,Build,Tools,Help,Back,Visual C+6.0及其开发环境,2023/11/8,8,Visual C+的菜单栏-File菜单,2023/11/8,9,Visual C+的菜单栏-File菜单,2023/11/8,10,Return,2.2 Visual C+的菜单栏-File菜单,2023/11/8,11,Visual C+的菜单栏-Edit菜单,断点作用:中断程序的执行过程,以便检查程序代码、变量和寄存器值,断点分为:位置断点数据断点消息断点,用来设置删除和查看断点,(1

3、)Breakpoints选项,2023/11/8,12,Visual C+的菜单栏-Edit菜单,位置断点通常在源代码的指定行、函数的开始或指定的内存地址处设置,当程序执行到指定位置时,位置断点将中断程序的执行,数据断点是在变量或表达式上设置,当变量或表达式的值改变时,数据断点将中断程序的执行,消息断点是在窗口函数WndProc上设置,当接收到指定的消息时,消息断点将中断程序的执行,2023/11/8,13,Visual C+的菜单栏-Edit菜单,2023/11/8,14,Return,Visual C+的菜单栏-Edit菜单,2023/11/8,15,在View菜单中可以:改变窗口改变工具

4、栏的显示方式检查源代码激活调试等,1.View-ClassWizard选项,Visual C+的菜单栏-View菜单,2023/11/8,16,(1)Message Maps选项卡:映射消息给与窗口、对话框、控件、菜单选项和加速键有关的处理函数,创建或删除消息处理函数,查看已经拥有消息处理函数的消息并跳转到相应的处理代码中去,Visual C+的菜单栏-View菜单,2023/11/8,17,(2)Member Variables选项卡:定义成员变量用于自动初始化收集并验证输入到表单视图(Form View)中的数据 Control IDs是映射到成员变量的控件ID值 Type是成员变量的类型

5、 Member是成员变量名,Visual C+的菜单栏-View菜单,2023/11/8,18,(3)Automation选项卡:创建新类时,添加自动化方法和属性,Visual C+的菜单栏-View菜单,2023/11/8,19,(4)ActiveX Events选项卡:MSMQ有两种Event:Arrived和ArrivedError,而且当消息(Message)或者错误(Error)到达消息队列时,MSMQEvent成分就将这两种事件激活,而该对话框就是用来添加事件的,Visual C+的菜单栏-View菜单,2023/11/8,20,(5)Class Info选项卡:提供有关类的信息。

6、,Visual C+的菜单栏-View菜单,2023/11/8,21,2.Resource Symbols选项 该选项将打开资源符号浏览器,从中可以浏览资源编辑符号,资源编辑符号是映射到整数值上的一串字符,相当于资源的一个代号,在同一个程序中,资源编辑符号不能重复,Visual C+的菜单栏-View菜单,2023/11/8,22,3.Resource Includes选项,该对话框包含资源符号头文件名和预处理指令。,Visual C+的菜单栏-View菜单,2023/11/8,23,Return,Visual C+的菜单栏-View菜单,2023/11/8,24,Visual C+的菜单栏-

7、Insert菜单,1.New Class选项 该选项用来创建新类并添加到项目中,2023/11/8,25,Visual C+的菜单栏-Insert菜单,2023/11/8,26,Return,Visual C+的菜单栏-Insert菜单,2023/11/8,27,用Project可创建、修改和存储正在编辑的工程文件 工程文件组合了一个应用程序的所有源文件的组成部分,其扩展名为.MAK。并非所有的.MAK文件都是Visual C+工程文件。使用AppWizard可创建与Visual C+兼容的工程文件,同时,也可创建只能由NMake使用的工程文件。,Visual C+的菜单栏-Project菜单

8、,2023/11/8,28,Visual C+的菜单栏-Project菜单,2023/11/8,29,3.Settings选项 选择该选项将弹出Project Settings对话框,其中 General选项卡用来设置基础类用法和目录。,Return,Visual C+的菜单栏-Project菜单,指出应用程序如何与MFC链接的,指出用来建立应用程序的位置(缺省为Debug),输出文件的位置,2023/11/8,30,该菜单用于编译、建立和执行应用程序。,Visual C+的菜单栏-Build菜单,2023/11/8,31,Visual C+的菜单栏-Build菜单,2023/11/8,32,

9、Return,Visual C+的菜单栏-Build菜单,5.Start Debug选项,从当前语句开始执行程序直到遇到断点或遇到程序结束,单步执行程序,并在遇到函数调用时进入函数内部再从头单步执行,使程序在运行到当前光标所在位置时停止(相当于设置一个临时断点),调试过程中直接进入到正在运行的进程中,2023/11/8,33,(1)Source Browse选项 编译器在建立项目时会创建与项目中每一程序文件信息有关的.SBR文件。BSCMAKE程序将这些.SBR文件汇编为项目文件名*.BSR的单个浏览信息数据库,Visual C+的菜单栏-Tools菜单,选择Source Browse将弹出浏

10、览窗口,它显示与程序中所有符号(类、函数、数据、宏和类型)有关的信息,2023/11/8,34,(2)Visual Component Manager选项,该工具用于组织、寻找和插入组件到某个项目中,而且还可以识别已存在的且可利用的对象。选择该选项将弹出Vcm.vbd窗口,Visual C+的菜单栏-Tools菜单,2023/11/8,35,Visual C+6.0的项目与项目工作区,2023/11/8,36,项目与项目工作区,以项目工作区的形式来组织文件、项目和项目配置,创建新的项目工作区File-New-Workspaces-输入工作区名字并指定工作区目录,2023/11/8,37,在工作

11、区中添加项目:用File-Open选项可打开已存在的项目;通过New对话框的Projects选项卡创建新的项目,并选择Add to current workspace复选框。,项目与项目工作区,2023/11/8,38,项目工作区窗口,VC项目工作区由ClassView、ResourceView及FileView三个面板组成,项目与项目工作区,2023/11/8,39,Visual C+6.0的资源及资源编辑器,2023/11/8,40,资源及资源编辑器,在VC中,源代码或资源编辑器为了引用资源和用户自定义的其它对象,于是就引入了一种与资源一一对应的符号即资源符号,使之能够以字符串的方式被引用

12、。资源符号是映射到整数值上的一串字符,是一种标识符。每当创建一个新的资源或资源对象时,系统就会为其提供一个缺省的资源符号名称并赋一个整数值,该定义保存在resource.h文件中,,资源是一种界面元素,用户可以从中获得信息并在其中执行某个动作,2023/11/8,41,View-Resource Symbols,输入新资源符号的名称,资源及资源编辑器,由于资源符号不能重复,因此应按照一种标准来定义资源符号进行符号定义,2023/11/8,42,资源符号的取值范围一般为032767,Return,资源及资源编辑器,2023/11/8,43,Visual C+6.0的联机帮助,2023/11/8,

13、44,联机帮助MSDN,VC Programmers Guide:VC程序员指南。VC Users Guide:VC用户指南。VC Tutorials:VC教程。MFC and Templates:微软基础类库和模板参考信息。Languages and Libraries for VC:VC语言和库文件信息。,VC帮助系统主要提供五个方面内容,11/8/2023,45,Windows 编程基础,11/8/2023,46,内容提要,Windows编程基础知识Windows应用程序常用消息Windows中的事件驱动程序设计Windows应用程序组成及编程步骤,11/8/2023,47,Window

14、s编程基础知识,11/8/2023,48,可视化开发系统(资源和工具的集成),源程序编辑器编译器,调试工具语法检查程序修改运行监视,应用程序Help和Setup开发工具,函数库和系统函数开发工具,资源管理器各种窗口和控件的编辑器,例程库及Help,其他功能,集资源和工具于一体的开发系统,11/8/2023,49,Windows的程序设计语言,“面向对象(Object-Oriented)”的语言VC+,VB和VJ适合于Windows的程序开发。Windows的程序中,对象是具有规范形态和操作模式的部件:窗口菜单按钮对话框程序模块,11/8/2023,50,编写Windows程序主要工作:在创建对

15、象为对象属性赋值,Windows的程序设计方法,传统编写法-使用API(Application Programming Interface)交互式方法-使用MFC(Microsoft Foundation Class),11/8/2023,51,应用程序接口API,定义Win系统各种特殊函数及数据结构;包含上千个可调用系统功能的标准API函数;实现应用程序与Win系统间的标准程序接口。,11/8/2023,52,API函数实现三种功能,窗口管理函数窗口的创建、移动和修改:图形设备(GDI)函数与设备无关的图形操作系统服务函数与操作系统有关的多种服务。,11/8/2023,53,用MFC库交互式

16、可视化编程,MFC类库含有大量已定义好的类(class),可根据编程的需要,调用相应的类,或自定义有关的类实现可视化交互开发方式选择所需对象并确定其属性,搭建起应用程序的“大框架”,编写必要的细节代码段,构成完整的应用程序。,11/8/2023,54,窗口(Window)事件驱动(Event-driven)句柄(Handl)消息(Message),相关的重要概念,利用API函数和MFC类库编写Windows应用程序,都必须了解下列有关概念:,11/8/2023,55,构成一个应用程序窗口的成分,11/8/2023,56,Win应用程序编程创建一个或多个窗口,Win应用程序运行窗口内部、窗口与窗

17、口之间、窗口与系统之间进行数据处理与交换的过程。,应用程序与用户之间交互的接口环境,系统对应用程序管理的基本单位,Window应用程序基本的操作单元,Back,窗口及其功能,11/8/2023,57,事件一种情况或一种活动的发生、或一种指定状态的变化,例如,按下鼠标或键盘的键。,有关事件驱动的概念,事件驱动编程方法针对事件或消息的处理进行;适于编写交互式程序。,事件驱动是由描述事件发生的信息,即消息驱动Win程序的执行。程序的执取决于事件发生的顺序;消息的产生并不要求有次序之分。,Back,11/8/2023,58,有关句柄的概念,句柄用于标识不同的对象和同类对象中不同的实例的标识符,一个其长

18、度为4字节长整数值。,句柄是Win应用程序编程的基础。应用程序过句柄访问相应的对象信息。,11/8/2023,59,常用句柄类型HWND窗口句柄HINSTANCE当前实例句柄HCURSOR光标句柄HFONT字体句柄HPEN画笔句柄HBRUSH画刷句柄HDC设备环境句柄HBITMAP位图句柄HICON图标句柄HMENU菜单句柄HFILE文件句柄,句柄所标识对象实例窗口按钮图标滚动条输出设备控件文件.。,Back,句柄的类型,11/8/2023,60,附加信息与具体消息号的值有关,有关消息的概念,应用程序利用消息与系统及其它应用程序进行信息交换。消息的三个组成部分:消息号:由事先定义好的消息名标识

19、字参数(wParam):用于提供消息的附加信息长字参数(lParam):用于提供消息的附加信息,11/8/2023,61,消息用结构MSG表示,typedef struct tagMSG HWND hwnd;/窗口句柄,为null,则检索队的所有消息 UINT message;/消息号,由Windows.h中的宏定义来标识 WPARAM wParam;/消息的附加信息 LPARAM lParam;/消息的附加信息 DWORD time;/指定消息送至队列的时间 POINT pt;/指定消息发送时屏幕光标的位置,MSG;typedef struct tagPOINT LONG x,y;/x和y分

20、别表示屏幕的横坐标和纵坐标POINT;,11/8/2023,62,消息的分类,各种消息分类,分别以不同的前缀表示:BM 按钮控制消息。CB 组合框控制消息。DM 默认下压式按钮控制消息。EM 编辑控制消息。LB 列表框控制消息。SBM 滚动条控制消息。WM 窗口消息。,11/8/2023,63,Windows应用程序常用消息,11/8/2023,64,Windows编程常用消息,窗口管理消息初始化消息输入消息系统消息剪贴板消息控制处理消息,控制通知消息滚动条通知消息非用户区消息MDI消息DDE消息应用程序自定义的消息,11/8/2023,65,此外,类似的鼠标左右键消息还有:WM_LBUTTO

21、NUP:放开左键时产生的消息;WM_RBUTTONDOWN:单击右键时产生的消息;WM_RBUTTONUP:放开右键时产生的消息;WM_LBUTTONDBLCLK:双击左键时产生的消息;WM_RBUTTONDBLCLK:双击右键时产生的消息。,1.WM_LBUTTONDOWN:产生单击鼠标左键的消息,附加信息:lParam当前光标位置低字节为X坐标值高字节为Y坐标值wParam一整数值以标识鼠标键的按下状态MK_LBUTTON按下鼠标左键MK_MBUTTON按下鼠标中键MK_RBUTTON按下鼠标右键,11/8/2023,66,2.WM_KEYDOWN:按下一个非系统键时产生的消息wParam

22、按下键的虚拟键码,标识按或放。lParam记录按键的重复次数、扫描码、转移代码及先前键的状态等信息。,相似的消息还有WM_KEYUP,在放开非系统键时产生,3.WM_ CHAR:按下一个非系统键时产生的消息 wParam按下键的ASCII码。1Param与WM_KEYDOWN的相同。,11/8/2023,67,4.WM_CREATE:由CreateWindow函数发出的消息。wParam未用。lParam个指向CREATESTRUCT数据结构的指针。,6.WM_DESTROY:由DestroyWiodow函数发出的消息。wParam和1Param均未用。,5.WM_CLOSE:关闭窗口时产生的

23、消息。wParam和1Param均未用。,11/8/2023,68,7.WM_QUIT退出应用程序时由PostQuitMessage函数发出的消息。wParam退出代码,标识退出时的有关信息。lParam未用。,8.WM_PAINT,11/8/2023,69,Windows中的事件驱动程序设计,11/8/2023,70,Windows中的事件驱动程序设计,过程驱动方法计算平均成绩,事件驱动方法计算平均成绩,11/8/2023,71,Windows应用程序组成及编程步骤,11/8/2023,72,应用程序的组成,一个完整的Windows应用程序通常包含如下几种类型的文件:C/C+语言源程序文件(

24、.c或.cpp)头文件(.h)模块定义文件(.def)资源描述文件(.rc)项目文件(.mak).,11/8/2023,73,源程序组成结构,1.所有应用程序的入口,类似Main函数,2.完成一系列的定义和初始化,并产生消息循环,WinMain和WinProc是Windows应用程序的主体,11/8/2023,74,1.WinMain函数,三个基本的组成部分:函数说明初始化消息循环功能注册窗口类,建立窗口及初始化进入消息循环,据接受的消息调用相应的处理过程当消息循环检索到WM_QUIT时终止程序运行,11/8/2023,75,注意!Win是多任务管理的,同一应用程序可能同时存在多个窗口,Win

25、系统对每个窗口的执行称为一个实例,并用一个实例句柄来唯一标识,(1)函数说明,int WINAPI WinMain(HINSTANCE hThisInst,应用当前实例句柄 HINSTANCe hPrevInst,应用其他实例句柄 LPSTR lpszCmdLine,指向命令行参数的指针 Int nCmdShow初始窗口显示方式的整数值标识),11/8/2023,76,(2)初始化,窗口类的定义:定义窗口的形式与功能LoadIcon()LoadCursor()GetStockObject()窗口类的注册:窗口类必须先注册后使用RegisterClass()创建窗口实例CreateWindow(

26、)显示窗口ShowWindow()UpdateWindow(),11/8/2023,77,(a)窗口类定义,通过给窗口类WNDCLASS赋值完成,该数据结构中包含窗口类的各种属性。窗口类定义常用以下函数:LoadIcon加载一个窗口图标。其原型为:HICON LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName),图标资源名或系统预定义图标标识名,图标资源模块句柄,11/8/2023,78,(a)窗口类定义(续),LoadCursor加载一个窗口光标HCURSOR LoadCursor(HINSTANCE hInstance,LPCTSTR lpCur

27、sorName)GetStockObject获取系统提供的背景刷HBRUSH GetStockObject(int nBrush);,光标资源名或系统预定义图标标识名,光标资源模块句柄,11/8/2023,79,(b)注册窗口类,Win系统提供部分预定义的窗口类,程序员也可以自定义窗口类,窗口类必须先注册后使用。由函数RegisterClass()实现注册。RegisterClass(/wndclass为窗口类结构 RegisterClass函数的返回为布尔值,注册成功则返回真,11/8/2023,80,(c)创建窗口示例,由函数CreateWindow()创建窗口类的实例。HWND Crea

28、te Window(LPCTSTR lpszClassName,窗口类名 LPCTSTR lpszTitle,窗口标题名 DWORD dwStyle,创建窗口的样式 int x,y,窗口左上角坐标 int nWidth,nHeight,窗口宽度和度高 HWND hwndParent,该窗口的父窗口句柄 HWENU hMenu,窗口主菜单句柄 HINSTANCE hInstance,应用程序当前句柄 LPVOID lpParam 指向传递给窗口的参数值的指针),11/8/2023,81,11/8/2023,82,(d)显示窗口,由ShowWindow和UpdateWindow显示调用ShowWi

29、ndow函数在屏幕上显示窗口ShowWindow(hwnd,nCmdshow);/nCmdshow为窗口显示形式标识,11/8/2023,83,(d)显示窗口(续),显示窗口后,调用UpdateWindow更新并绘制用户区,并发出WM_PAINT消息。UpdateWindow(hwnd);,11/8/2023,84,(3)消息循环,消息循环的常见格式如下:MSG Msg;while(GetMessage(,将消息的虚拟键转换为字符信息,将消息传送到指定窗口函数,11/8/2023,85,2 窗口函数WinProc,WinProc函数由一个或多个switch语句组成。每一条case语句对应一种消

30、息,当应用程序接收到一个消息时,相应的case语句被激活并执行相应的响应程序模块。,11/8/2023,86,窗口函数的一般形式如下:LRESULT CALLBACK WndProc(HWND hwnd,UINT messgae,WPARAM wParam,LPARAM lParam)switch(message)message为标识的消息 case break;case WM_DESTROY:PostQuitMessage(0);default:return DefWindowProc(hwnd,message,wParam,lParam);return(0);,在消息处理程序段中一般都有对

31、WM_DESTROY的处理,该消息是关闭窗口时发出的。它向应用程序发出WM_QUIT消息,请求退出处理函数:void PostQuitMessage(int nExitCode)/nExitCode为应用程序的退出代码,为未定义处理过程的消息提供缺省处理,11/8/2023,87,3数据类型,在Windows.h中定义了Windows 应用程序中包含种类繁多的数据类型,,11/8/2023,88,4 一些重要的数据结构,11/8/2023,89,应用程序举例,【例3-1】应用程序窗口示例,本例的目的在于说明创建Windows窗口的方法及过程。,#include/包含应用程序中所需的数据类型和数

32、据结构的定义LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);/窗口函数说明/-以下初始化窗口类-int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)HWND hwnd;MSG Msg;WNDCLASS wndclass;char lpszClassName=窗口;/窗口类名 char lpszTitle=My_Windows;/窗口标题名,11/8/2023,90,/窗口类的定义wndclass.style=0;/窗

33、口类型为缺省类型wndclass.lpfnWndProc=WndProc;/定义窗口处理函数wndclass.cbClsExtra=0;/窗口类无扩展wndclass.cbWndExtra=0;/窗口实例无扩展wndclass.hInstance=hInstance;/当前实例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);/窗口的最小化图标为缺省图标wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);/窗口采用箭头光标wndclass.hbrBackground=GetStockObject(WHITE_BR

34、USH);/窗口背景为白色wndclass.lpszMenuName=NULL;/窗口中无菜单wndclass.lpszClassName=lpszClassName;/窗口类名为窗口,11/8/2023,91,/-以下进行窗口类的注册-if(!RegisterClass(,11/8/2023,92,/-显示窗口-ShowWindow(hwnd,nCmdShow);/-绘制用户区-UpdateWindow(hwnd);/-消息循环-while(GetMessage(/消息循环结束即程序终止时将信息返回系统,11/8/2023,93,/窗口函数LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)switch(message)case WM_DESTROY:PostQuitMessage(0);default:/缺省时采用系统消息缺省处理函数return DefWindowProc(hwnd,message,wParam,lParam);return(0);,调用PostQuitMessage发出WM_QUIT消息,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号