简单的windows应用程序.ppt

上传人:小飞机 文档编号:6011871 上传时间:2023-09-14 格式:PPT 页数:20 大小:462.56KB
返回 下载 相关 举报
简单的windows应用程序.ppt_第1页
第1页 / 共20页
简单的windows应用程序.ppt_第2页
第2页 / 共20页
简单的windows应用程序.ppt_第3页
第3页 / 共20页
简单的windows应用程序.ppt_第4页
第4页 / 共20页
简单的windows应用程序.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《简单的windows应用程序.ppt》由会员分享,可在线阅读,更多相关《简单的windows应用程序.ppt(20页珍藏版)》请在三一办公上搜索。

1、先来看两个简单的Windows应用程序。例1 一个最简单的Windows应用程序(1)运行Microsoft Visual C+6.0后,选择“文件”“新建”菜单命令,打开应用程序向导,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项,如图所示。,Windows应用实践-Windows程序结构,Windows应用实践,(2)在工程框中输入Win32应用程序项目名称Ex_HelloMsg。在“位置”下的编辑框中直接输入文件夹名称(3)单击“确定”按钮继续。一个询问项目类型的Win32应用程序向导将被显示,选中“An empty p

2、roject”(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮系统将自动创建此应用程序。(4)再次选择“文件”“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C+Source File项,在右边的“文件”下的编辑框中键入Ex_HelloMsg.cpp,单击“确定”按钮,如图所示。,Windows应用实践,(5)在文档窗口中输入下面的代码:#include int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdL

3、ine,int nCmdShow)MessageBox(NULL,你好,我的Visual C+世界!,问候,0);return 0;(6)编译并运行程序。,从上面的程序可以看出:控制台应用程序是以main函数作为进入程序的初始入口点,但在Windows应用程序中,main函数被WinMain函数取而代之,WinMain函数的原型如下:int WINAPI WinMain(HINSTANCE hInstance,/当前实例句柄HINSTANCE hPrevInstance,/以前的实例句柄LPSTR lpCmdLine,/指向命令行参数的指针int nCmdShow/窗口的显示状态),Windo

4、ws应用实践,这里出现了一个新的概念“句柄”(handle),所谓句柄是一个标识Windows资源(如菜单、图标、窗口等)和设备等对象的变量,或者是一个对操作系统资源的间接引用。每一个Win32应用程序都需要Windows.h头文件,它还包含了其他的一些Windows头文件。这些头文件定义了Windows的所有数据类型、函数调用、数据结构和符号常量。,程序中,MessageBox是一个Win32 API(Application Programming Interface,应用程序接口)函数,用来弹出一个对话框窗口,显示短信息。该函数第一个参数用来指定父窗口句柄,即对话框所在的窗口句柄。第二、三

5、个参数分别用来指定显示的消息内容和对话框窗口的标题,最后一个参数用来指定在对话框中显示的按钮。,例Ex_HelloWin 一个较完整的Windows应用程序(1)创建一个An empty project类型的Win32 Application(Win32 应用程序)项目Ex_HelloWin。(2)选择“文件”“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C+Source File项,在右边的“文件”框中键入Ex_HelloWin.cpp,单击“确定”按钮。(3)在文档窗口中输入下面的代码:,与Ex_HelloMsg示例相比,Ex_HelloWin要复杂得多,但

6、总可以将其分解成是两个基本函数的程序结构。一个是WinMain函数,另一个是用户定义的窗口过程函数WndProc。窗口过程函数WndProc用来接收和处理各种不同的消息,而WinMain函数通常要完成以下几步工作。,定义并调用API函数RegisterClass注册应用程序的窗口类。调用相关API函数创建和显示窗口,并进行其他必要的初始化处理。其中,函数CreateWindow用来创建已注册窗口类的窗口。Windows每一个窗口都有一些基本属性,如窗口标题、窗口位置和大小、应用程序图标、鼠标指针、菜单和背景颜色等。窗口类就是充当这些属性的模板。,CreateWindow函数具有下列原型:HWN

7、D CreateWindow(LPCTSTR lpClassName,/已注册的窗口类名 LPCTSTR lpWindowName,/窗口标题 DWORD dwStyle,/窗口风格 int x,/窗口的水平位置 int y,/窗口的垂直位置 int nWidth,/窗口宽度 int nHeight,/窗口高度 HWND hWndParent,/父窗口句柄 HMENU hMenu,/菜单句柄或控件标识 HINSTANCE hInstance,/应用程序实例句柄 LPVOID lpParam/其他窗口创建时的参数数据);,创建和启动应用程序的消息循环。Windows应用程序接收各种不同的消息,包

8、括键盘消息、鼠标以及窗口产生的各种消息。Windows系统首先将消息放入消息队列中,应用程序的消息循环就是从应用程序的消息队列中检取消息,并将消息发送到相应的窗口过程函数中做进一步处理。API函数GetMessage 和DispatchMessage就是起到这样的作用。如果接收到WM_QUIT消息,则退出应用程序。(4)编译并运行程序,在窗口中单击鼠标左键,就会弹出一个对话框,结果如图2.4所示。,上述Windows应用程序的基本流程,用下图表示。,1消息驱动机制基于Windows程序和基于控制台应用程序之间的一个最根本区别,就在于控制台应用程序是通过调用系统的函数来获得用户输入的,而Wind

9、ows程序则是通过系统发送的消息来处理用户输入的。在Windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件(Events)产生的消息(Message)。例如,在Windows 桌面(传统风格)上,双击应用程序的快捷图标,系统就会执行该应用程序。在Windows的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行交互的。这种消息驱动的机制是Windows编程的最大特点。,Windows编程特点,2图形设备接口(GDI)在控制台应用程序中,想要在屏幕或打印机上显示或打印一幅图形是一件非常复杂的事件,因为用户必须按照屏幕分辨率模式以及专用绘图函数库调用相应

10、的函数在屏幕上绘图,或根据打印机类型或指令规则向打印机输送数据。而Windows提供了一个抽象的接口,称为图形设备接口(Graphical Device Interface,GDI),使得用户直接利用系统的GDI函数就能方便地实现图形和文本的输出,而不必关心与系统相连的外部设备的类型。,3基于资源的程序设计 Windows应用程序常常包含众多图形元素,例如光标、菜单、工具栏、位图、对话框等。每一个这样的资源都用相应的标识符来区分,而且Windows内部也有预定义的资源,例如在Ex_HelloWin中,LoadIcon和LoadCursor函数将系统内部的IDI_APPLICATION(应用程序

11、图标)和IDC_ARROW(箭头光标)作为创建窗口的窗口图标和鼠标指针。,4动态链接库动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接,且多个程序可以共享同一个动态链接库,这样就可以大大节省内存和磁盘空间。从编程角度来说,动态链接库可以提高程序模块的灵活性,因为它本身是可以单独设计、编译和调试的。Windows提供了丰富的应用程序可调用的函数,大多数用于实现其用户界面和在屏幕显示的文本和图形,都是通过动态链接库来实现的。这些动态链接库是一些具有DLL扩展名或者有时是EXE扩展名的文件。在Windows操作系统中,最主要的DLL有KERNEL32.DLL、GDI32.DLL

12、和USER32.DLL。其中,KERNEL32.DLL用来处理存储器低层功能、任务和资源管理等Windows核心服务;GDI32.DLL用来提供图形设备接口,管理用户界面和图形绘制,包括Windows元文件、位图、设备描述表和字体等;而USER32.DLL负责窗口的管理,包括消息、菜单、光标、计时器以及其他与控制窗口显示相关的一些功能。,需要说明的是:这些基本数据类型都是用大写字符来表示,以便与一般C+基本数据类型相区别。凡是数据类型的前缀是P或LP,则表示该类型是一个指针或长指针数据类型。若前缀是U,则表示是无符号数据类型,等等。Windows还提供一些宏来处理上述基本数据类型。例如,LOBYTE和HIBYTE分别用来获取16位数值中的低位和高位字节;LOWORD和HIWORD分别用来获取32位数值中的低位字和高位字;MAKEWORD是将两个16位无符号值结合成一个32位无符号值,等等。,表2.2 Windows常用的基本数据类型,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号