程序设计基础精选文档.ppt
《程序设计基础精选文档.ppt》由会员分享,可在线阅读,更多相关《程序设计基础精选文档.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计基础1本讲稿第一页,共八十六页10.1Windows程序设计基础程序设计基础1.Windows系统的特点系统的特点v标准的用户界面标准的用户界面v多任务多任务v设备独立性设备独立性v动态链接动态链接v强大的内存管理强大的内存管理2本讲稿第二页,共八十六页10.1Windows程序设计基础程序设计基础2.基本术语基本术语窗口(窗口(Window)由句柄唯一标识)由句柄唯一标识对话框(对话框(Dialog)人机交互)人机交互图标(图标(Icon)代表某一项操作或程序的图符)代表某一项操作或程序的图符位图(位图(Bitmap)用位模式形成的图像)用位模式形成的图像菜单(菜单(Menu)命令)
2、命令工具栏(工具栏(ToolBar)常用的菜单项)常用的菜单项状态栏(状态栏(StateBar)操作状态或操作提示)操作状态或操作提示3本讲稿第三页,共八十六页10.1.1窗口窗口窗口是Windows程序的基本单元,Windows程序的运行过程就是窗口内部、窗口之间及窗口与用户之间的信息交换过程。窗口通常包括菜单、工具条、滚动条、状态栏、命令按钮、对话框等元素。4本讲稿第四页,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应1.事件事件事件是指人们应用计算机的过程中发生的操作,如按事件是指人们应用计算机的过程中发生的操作,如按下键盘上的某个按键、移动鼠标、单击鼠标左键、移下键盘上的某
3、个按键、移动鼠标、单击鼠标左键、移动窗口及选择程序菜单等操作都是事件。动窗口及选择程序菜单等操作都是事件。2、事件驱动、事件驱动每发生一个事件,就会产生一个与之对应的特定消息,该消每发生一个事件,就会产生一个与之对应的特定消息,该消息会被息会被Windows系统捕获,然后将通过此消息调用执行与系统捕获,然后将通过此消息调用执行与之对应的程序代码,实现相应的程序功能。之对应的程序代码,实现相应的程序功能。因为从事件发生到相应程序代码被调用执行都是通过消息因为从事件发生到相应程序代码被调用执行都是通过消息来实现的,因此事件驱动也常被称为消息驱动来实现的,因此事件驱动也常被称为消息驱动5本讲稿第五页
4、,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应3、消息队列、消息队列用于存放消息的队列,消息系统由用于存放消息的队列,消息系统由Windows系统自动建立和维护。系统自动建立和维护。Windows消息队列的类型消息队列的类型v系统消息队列:由系统消息队列:由Windows系统维护管理的消系统维护管理的消息队列,每当有消息发生时,该消息将首先被存息队列,每当有消息发生时,该消息将首先被存入系统消息队列。入系统消息队列。v应用程序消息队列:应用程序消息队列:Windows系统会为每个应系统会为每个应用程序建立一个独立的消息队列,用于存放该应用程序建立一个独立的消息队列,用于存放该应用
5、程序的消息。用程序的消息。6本讲稿第六页,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应4、消息循环、消息循环每个应用程序都有一个循环机构,该循环机构则不每个应用程序都有一个循环机构,该循环机构则不断地重复查看程序自身的消息队列,如果队列中断地重复查看程序自身的消息队列,如果队列中有消息,就将其取出并执行相应的消息处理代码,有消息,就将其取出并执行相应的消息处理代码,这个处理消息的循环机构称为消息循环。这个处理消息的循环机构称为消息循环。7本讲稿第七页,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应5、Windows程序调度的基本原理程序调度的基本原理每个每个Windo
6、ws程序启动后,就等待用户在其窗口中进行程序启动后,就等待用户在其窗口中进行操作。每个操作会引发一个事件,就会产生一个与之对操作。每个操作会引发一个事件,就会产生一个与之对应的特定消息。该消息会被应的特定消息。该消息会被Windows系统捕获。系统捕获。Windows系统对捕获的消息进行分析后,会将消息传系统对捕获的消息进行分析后,会将消息传递给产生它的应用程序的消息队列,每个应用程序的递给产生它的应用程序的消息队列,每个应用程序的消息循环机构不断地重复查看它自已的消息队列,如消息循环机构不断地重复查看它自已的消息队列,如果队列中有消息,就将其取出并执行相应的消息处理果队列中有消息,就将其取出
7、并执行相应的消息处理代码,代码,如果队列中没有消息就等待,当队列中有消息时就又处理它,如此循环往复,直至程序结束。8本讲稿第八页,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应6、事件驱动及消息循环的基本原理9本讲稿第九页,共八十六页10.1.2事件驱动和消息响应事件驱动和消息响应7、DOS和Windows程序执行方式对比10本讲稿第十页,共八十六页10.1.3 Windows程序的构成1、Windows程序的组成程序的组成v程序代码程序代码程序代码是程序的主体,用于实现程序的功能程序代码是程序的主体,用于实现程序的功能v资源资源Windows程序具有标准规范的应用程序界面,每个程
8、序具有标准规范的应用程序界面,每个Windows程序常常包含程序常常包含了许多相同的组成元素,如菜单、对话框、工具栏、应用程序图标、鼠了许多相同的组成元素,如菜单、对话框、工具栏、应用程序图标、鼠标光标、程序版本信息等,这些组成元素被标光标、程序版本信息等,这些组成元素被Windows从程序代码中独立从程序代码中独立出来,并以各种不同扩展名的文件形式存在,如出来,并以各种不同扩展名的文件形式存在,如.ico(图标)、(图标)、.bmp(位图)、(位图)、.cur(光标)等,(光标)等,Windows系统称之为资源系统称之为资源资源则可以在需要时才通过相关命令资源则可以在需要时才通过相关命令加载
9、加载到程序中。到程序中。11本讲稿第十一页,共八十六页.libC runtimeDll import.RC资源编译器资源编译器.DLGDialog Editor*.obj*.exe.res.DEF资源连接器资源连接器Image EditorFont Editor.BMP.ICO.CUR.FON.h.c/cppc编译器编译器2、Window程序的编译链接过程12本讲稿第十二页,共八十六页10.1.4VC+的的Windows程序设计方法程序设计方法1API程序设计程序设计API即即ApplicationProgrammingInterface(应应用用程程序序编编程程接接口口),它它是是Windo
10、ws操操作作系系统统和和Windows应应用用程程序序之之间间的的标标准准接接口口,在在应应用用程程序序中中可可以以通通过过API访问访问Windows提供的各种函数、宏及数据结构。提供的各种函数、宏及数据结构。API函函数数保保存存在在一一些些动动态态链链接接库库中中,每每个个Windows程程序序都都要要 用用 到到 的的 动动 态态 链链 接接 库库 有有USER32.Dll、GDI32.Dll、KERNEL32.Dll。API程程序序设设计计就就是是直直接接利利用用Windows系系统统提提供供的的API函函数,编写能够在数,编写能够在Windows系统中运行的程序。系统中运行的程序。
11、13本讲稿第十三页,共八十六页10.1.4VC+的的Windows程序设计方法程序设计方法2MFC程序设计程序设计MFC是是MicrosoftFoundationClasses的的缩缩写写,即即微微软软基基础础类类库库。MFC是是建建立立在在API基基础础上上的的C+类类库库,它它对对Windows提提供供的的API函函数数、数数据据结结构构、各各种种控控件件按按功功能能进进行行了了分分类类,利利用用面面向向对对象象技技术术将将它它们们封封装装在在不不同同的的类类中中,并通过继承将这些类组织在一起。并通过继承将这些类组织在一起。MFC不不仅仅把把API函函数数封封装装成成了了易易于于使使用用的
12、的类类,而而且且还还提提供供了了建建立立Windows应应用用程程序序的的框框架架结结构构,以以及及建建立立应应用用程序的各种组件,简化了程序的各种组件,简化了Windows程序设计的难度。程序设计的难度。14本讲稿第十四页,共八十六页1.句柄句柄句柄是整个句柄是整个Windows编程的基础。一个句柄编程的基础。一个句柄是指是指Windows使用的一个唯一的整数值,是使用的一个唯一的整数值,是一个一个4字长(字长(32位无符号整数)位无符号整数)的数值,用于的数值,用于标识应用程序中不同的对象和同类对象中不同标识应用程序中不同的对象和同类对象中不同的实例。的实例。如标识一个窗口、按钮、图标、滚
13、动条、输入如标识一个窗口、按钮、图标、滚动条、输入/输出设备、控件或文件等。输出设备、控件或文件等。应用程序通过句柄能够访问相应的对象信息。应用程序通过句柄能够访问相应的对象信息。10.2Windows程序设计的常用数据结构程序设计的常用数据结构15本讲稿第十五页,共八十六页v常用的句柄类型常用的句柄类型HWND HWND 标识窗口句柄标识窗口句柄HINSTANCEHINSTANCE标识当前实例句柄标识当前实例句柄HCURSORHCURSOR 标识光标句柄标识光标句柄HFONTHFONT标识字体句柄标识字体句柄HPENHPEN标识画笔句柄标识画笔句柄HBRUSHHBRUSH标识画刷句柄标识画刷
14、句柄HDCHDC标识设备环境句柄标识设备环境句柄HBITMAPHBITMAP 标识位图句柄标识位图句柄HICONHICON标识图标句柄标识图标句柄HMENUHMENU标识菜单句柄标识菜单句柄HFILEHFILE标识文件句柄标识文件句柄10.2Windows程序设计的常用数据结构程序设计的常用数据结构16本讲稿第十六页,共八十六页关键字关键字类型类型等价于等价于BOOLBOOL逻辑类型逻辑类型intintBOOLEAN BOOLEAN 逻辑逻辑BYTEBYTEBYTEBYTE字节字节unsinged charunsinged charCHARCHAR字符字符charcharDOUBLE DOUB
15、LE 双精度双精度doubledoubleDWORD DWORD 双字双字unsigned longunsigned longFLOATFLOAT浮点数浮点数floatfloatHANDLEHANDLE句柄句柄10.2.2常用常用数据类型数据类型17本讲稿第十七页,共八十六页INTINT整数整数intintLONGLONG长整数长整数longlongSHORTSHORT短整数短整数shortshortUCHARUCHAR无符号字符无符号字符unsinged charunsinged charUINTUINT无符号整数无符号整数unsinged intunsinged intULONGULONG
16、无符号长整数无符号长整数unsigned longunsigned longUSHORTUSHORT无符号短整数无符号短整数unsigend shortunsigend shortVOIDVOIDvoidvoidWCHARWCHAR双字节码双字节码unsigned shortunsigned shortWCHAR_TWCHAR_T双字节码双字节码unsigned shortunsigned shortWORDWORD字字unsigned shortunsigned short18本讲稿第十八页,共八十六页WPARAM消息参数消息参数UINTLPARAM消息参数消息参数LONGLRESULT消息
17、返回值消息返回值 LONGHINSTANCE实例句柄实例句柄unsigned longHWAND窗口句柄窗口句柄unsigned longHDC设备环境句柄设备环境句柄unsigned longTCHAR字符字符charLPSTR字符指针字符指针char*LPCSTR常量字符指针常量字符指针const char*LPTSTR字符指针字符指针TCHAR*LPVOID无类型指针无类型指针 void*LPCVOID无类型长指针无类型长指针const void*19本讲稿第十九页,共八十六页(1 1)坐标结构)坐标结构typedef struct tagPOINT typedef struct tag
18、POINT LONG x;LONG x;LONG y;LONG y;POINT POINT;注:在注:在MFCMFC中还有一个类中还有一个类CPointCPoint,与,与POINTPOINT结构近似,但结构近似,但它有许多成员函数。它有许多成员函数。(2 2)长、宽尺寸结构:)长、宽尺寸结构:CSIZECSIZE,CsizeCsize;typedef struct tagSIZE typedef struct tagSIZE int cx;int cx;int cy;SIZE;int cy;SIZE;10.2.3点和矩形区域点和矩形区域20本讲稿第二十页,共八十六页(3 3)记录矩形区域结构
19、)记录矩形区域结构RECTRECT和和CrectCrecttypedef struct tagRECT typedef struct tagRECT LONG left;LONG left;LONG top;LONG top;LONG right;LONG right;LONG bottom;LONG bottom;RECT;RECT;在在MFCMFC中中Crect Crect 与此类似,但有成员函数。与此类似,但有成员函数。LPRECT LPRECT 为指针为指针RECTRECT类型的常数指针。类型的常数指针。(4 4)颜色)颜色COLORREFCOLORREF 32-bit value u
20、sed to specify an RGB color.32-bit value used to specify an RGB color.例:例:COLORREF RGB(BYTE bRed,BYTE bGreen,BYTE Bblue);COLORREF RGB(BYTE bRed,BYTE bGreen,BYTE Bblue);21本讲稿第二十一页,共八十六页10.2.4 窗口结构窗口结构typedef struct typedef struct UINT style;UINT style;/窗口类型窗口类型 WNDPROC lpfnWndProc;WNDPROC lpfnWndProc
21、;/窗口函数指针窗口函数指针int cbClsExtraint cbClsExtra;/;/为类结构的预留额外空间为类结构的预留额外空间int cbWndExtra;int cbWndExtra;/为窗口结构预留额外空间为窗口结构预留额外空间 HANDLE hInstance;HANDLE hInstance;/窗口类的应用实例句柄窗口类的应用实例句柄HICON hIcon;HICON hIcon;/图标句柄图标句柄HCURSOR hCursor;HCURSOR hCursor;/窗口类的光标窗口类的光标 HBRUSH hbrBackground;HBRUSH hbrBackground;/窗
22、口类的背景刷窗口类的背景刷LPCTSTR lpszMenuName;LPCTSTR lpszMenuName;/菜单资源名菜单资源名LPCTSTR lpszClassName;LPCTSTR lpszClassName;/窗口类名窗口类名 WNDCLASS;WNDCLASS;22本讲稿第二十二页,共八十六页10.2.4窗口结构窗口结构vWNDCLASS中的中的style代表窗口类型,可取下面的值:代表窗口类型,可取下面的值:WS_CHILD子窗口(不能与子窗口(不能与WS_POPUP同时使用)同时使用)WS_BORDER带边框的窗口带边框的窗口WS_CAPTION带标题栏的窗口带标题栏的窗口W
23、S_HSCROLL带有水平滚动条的窗口带有水平滚动条的窗口WS_MAXIMIZE最大尺寸的窗口最大尺寸的窗口WS_MAXIMIZEBOX带最大化框的窗口带最大化框的窗口WS_MINIMIZE最小尺寸的窗口最小尺寸的窗口WS_MINIMIZEBOX带最小化框的窗口带最小化框的窗口WS_OVERLAPPED带边框和标题栏的窗口带边框和标题栏的窗口WS_OVERLAPPEDWINDOW带边框、标题栏、系统菜单及最大、最小化框的窗口带边框、标题栏、系统菜单及最大、最小化框的窗口WS_POPUP弹出式窗口弹出式窗口WS_POPUPWINDOW带边框和系统菜单的弹出式窗口带边框和系统菜单的弹出式窗口WS_
24、SYSMENU带系统菜单的窗口带系统菜单的窗口WS_VSCROLL带垂直滚动条的窗口带垂直滚动条的窗口23本讲稿第二十三页,共八十六页1 1、消息结构:、消息结构:MSGMSGtypedef struct tagMSG typedef struct tagMSG HWNDHWND hwnd;hwnd;/消息发向的窗口句柄消息发向的窗口句柄UINTUINT message;message;/消息标识符消息标识符WPARAM wParamWPARAM wParam;/16;/16位的消息参数,值因消息异位的消息参数,值因消息异LPARAM lParam;LPARAM lParam;/32/32位的
25、消息参数,值因消息异位的消息参数,值因消息异DWORDDWORD time;time;/消息放入消息队列的时间消息放入消息队列的时间POINTPOINT pt;pt;/消息放入消息队列的鼠标位置消息放入消息队列的鼠标位置 MSG;MSG;说明:说明:WPARAMWPARAM含义和数值因消息不同而不同含义和数值因消息不同而不同比如:键盘消息和鼠标消息所对应的比如:键盘消息和鼠标消息所对应的WPARAMWPARAM消息所代表的消息是不同的。消息所代表的消息是不同的。10.2.5消息消息24本讲稿第二十四页,共八十六页10.2.5消息消息2、MSG中的域说明中的域说明hwnd是一个窗口句柄,用于标识
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 精选 文档
限制150内