windows应用程序设计.ppt_第1页
windows应用程序设计.ppt_第2页
windows应用程序设计.ppt_第3页
windows应用程序设计.ppt_第4页
windows应用程序设计.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第3章 Windows应用程序设计,2,Windows应用程序设计,1. Win32 API 2. Windows应用程序设计模式 3. Windows应用程序的基本结构 4. MFC 5. 动态链接库 6. .net,3,1. Win32 API,Windows 应用程序与操作系统的关系,4,USER32.DLL:负责处理用户接口 GDI32.DLL:负责在图形设备上执行绘图操作 KERNEL32.DLL:操作系统核心功能服务 COMCTL32.DLL:通用控件库 COMDLG32.DLL:公共对话框 SHELL32.DLL:用户界面外壳 DIBENG.DLL:图形引擎 NETAPI32.DLL:网络,5,USER32.DLL: 负责窗口管理,包括消息,菜单,光标,通信,计时器和其他控制显示窗口的函数. GDI32.DLL: 图形设备接口,他管理用户界面的生成和图形绘制,主要包括设备描述表,字体,位图等. KERNEL32.DLL: Windows的核心,他管理内存调度,进程调度等低层功能.,6,2. Windows应用程序设计模式,窗口,目的是保证用户能够同时访问大多数应用程序 应用程序使用窗口来显示输出或接收用户的输入 应用程序只有通过窗口才能访问系统显示器;并且通过使用窗口与其他应用程序共享系统显示器,7,事件驱动,Windows 应用程序的执行顺序取决于事件发生的顺序,描述事件发生的信息称为消息,而事件驱动程序设计则是围绕着消息的产生与处理而展开的。,消息可以分为由硬件设备产生的输入消息和来自Windows系统的窗口管理消息,发送消息send 指派消息post,8,消息结构的定义如下: typedef struct tagMSG HWND hWnd; /指定消息发向的窗口句柄 UINT message; /标识消息的消息值 WPARAM wParam; /消息参数 LPARAM lParam; /消息参数 DWORD time; /消息进入队列的时间 POINT pt; /消息进入队列时鼠标指针 的屏幕坐标 MSG,*PMSG,NEAR *NPMSG, FAR * LPMSG;,9,消息结构中各个成员的意义: message是标识消息的消息值或消息名。每个消息都有唯一一个数值标识,常用不同前缀的符号常量以示区别。例如,WM_表示窗口消息 。,Windows常用的窗口消息和消息值定义于winuser.h中 #define WM_CREATE 0X0001 /创建窗口产生的消息 #define WM_DESTROY 0X0002 /撤销窗口产生的消息 #define WM_PAINT 0X000F /重画窗口产生的消息 #define WM_CLOSE 0X0010 /关闭窗口产生的消息 #define WM_CHAR 0X0102 /按下非系统键产生的字符消息 #define WM_USER 0X0400 /用户自定义消息,10,常用Windows句柄类型,11,常用windows数据类型,12,13,基本结构,3. Windows应用程序的基本结构与消息机制,14,范例:一个典型的win32 APP,15,16,4. MFC程序设计,MFC框架程序分析,17,解释AppWizard和ClassWizard使用。 解释数据交换UpdateData() UpdateData(true); /用于将屏幕上控件中的数据交换到变量中。 UpdateData(false); /用于将数据在屏幕中对应控件中显示出来。,18,消息映射过程粗略分析,TESTDlg.h,关注: afx_msg void OnLButtonDown; virtual void OnOK();,19,TESTDlg.cpp, ,GetMessageFun();,20,5. 动态链接库,动态链接库DLL是一个可执行程序模块,模块中包含了可以被其他应用程序或其他DLL共享的程序代码和资源,21,DLL到进程地址空间的映射,装入时刻动态链接,22,DLL到进程地址空间的映射,运行时刻动态链接,在运行时刻,通过调用LoadLibrary可以使DLL加载到一个进程的地址空间中; 为了在运行时刻从DLL中调用一个函数,可以通过调用GetProcAddress获取函数的地址; FreeLibrary释放DLL;,23,DLL到进程地址空间的映射,24,动态链接库的创建和使用,25,6. .net程序设计,Introduction to .NET Framework,26,.NET What Is It?,Software platform Language neutral In other words: .NET is not a language (Runtime and a library for writing and executing written programs in any compliant language),27,.Net is a new framework for developing web-based and windows-based applications within the Microsoft environment. The framework offers a fundamental shift in Microsoft strategy: it moves application development from client-centric to server-centric.,28,Operating System + Hardware,29,Base Class Library,Common Language Specification,Common Language Runtime,ADO.NET: Data and XML,VB,VC+,VC#,Visual Studio.NET,ASP.NET: Web Services and Web Forms,JScript,Windows Forms,Framework, Languages, And Tools,30,The .NET Framework Library,Base Class Library,ADO.NET and XML,31,The .NET Framework .NET Framework Services,Common Language Runtime Windows Forms ASP.NET Web Forms Web Services ADO.NET, evolution of ADO Visual Studio.NET,32,Common Language Runtime (CLR),CLR works like a virtual machine in executing all languages. All .NET languages must obey the rules and standards imposed by CLR. Examples: Object declaration, creation and use Data types,language libraries Error and exception handling Interactive Development Environment (IDE),33,Compilation in .NET,Code in VB.NET,Code in C#,Code in another .NET Language,VB.NET compiler,C# compiler,Appropriate Compiler,IL(Intermediate Language) code,CLR just-in-time execution,34,Languages,Languages provided by MS VB, C+, C#, J#, JScript Third-parties are building APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk,35,.NET

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论