Windows编程入门:消息获取与API函数介绍

需积分: 37 8 下载量 28 浏览量 更新于2024-08-19 收藏 2.6MB PPT 举报
"这篇内容是关于WIN32编程的学习资料,主要讲解了消息获取的两种方法:GetMessage和PeekMessage,并介绍了C++中的Windows应用程序类型、入口函数、文件存在方式以及执行方式。同时,提到了Windows开发环境,包括常用的开发工具Visual Studio C++和其编译工具,以及Windows库和头文件的介绍。最后,简单提及了创建一个HelloWorld程序所需的函数参数。” 在Windows编程中,消息机制是窗口程序与用户交互的基础。GetMessage和PeekMessage是两个关键的函数,用于从消息队列中获取消息。GetMessage是一个阻塞函数,它会等待直到有新消息到达,然后将其从队列中移除。如果队列为空,程序将被挂起,直到有新消息为止。这有助于确保线程按顺序处理消息,避免错过任何用户输入。 相反,PeekMessage是非阻塞的,它允许开发者检查消息队列是否有消息,但不会从队列中移除消息。如果队列为空,PeekMessage会立即返回,不会挂起线程,因此适合于需要持续运行的任务。 在Windows应用程序的类型中,有控制台程序、窗口程序和库程序(包括静态库和动态库)。控制台程序依赖DOS窗口,窗口程序有自己的窗口界面,而库程序则包含可重用的代码和数据。入口函数根据程序类型不同,分别为main(控制台)、WinMain(窗口)和DllMain(动态库)。文件形式上,控制台程序和窗口程序生成的是EXE文件,动态库是DLL文件,静态库是LIB文件。 Windows开发环境通常使用Visual Studio C++,包含了编译器CL.EXE、链接器LINK.EXE和资源编译器RC.EXE等工具。Windows API分布在kernel32.dll、user32.dll和gdi32.dll等库中,对应的头文件如windows.h、windef.h、winbase.h、wingdi.h和winuser.h等提供了函数声明和数据类型定义。 创建一个简单的HelloWorld程序,通常会从WinMain函数开始,这个函数接收四个参数:当前程序实例的句柄(hInstance)、前一实例句柄(hPrevInstance,一般为NULL)、命令行参数(lpCmdLine)和应用程序的显示模式(nShowCmd)。在WinMain中,开发者通常会设置消息循环,处理窗口创建、消息获取等基本流程。