、控制处理消息、控制通知消息、滚动条通知消息、非用户 区消息、MDI(多
文档界面)消息、DDE(动态数据交换)消息,以及应用程序 自定义的消息等。 应用程序自定义的消息可以供内部应用程序和系统内其他进程
通信使用。
5、Windows 应用程序常用消息 、
(1)WM_LBUTTONDOWN ) 单击鼠标左键时产生此消息,其附加消息参数 wParam 包含一个整数值,标 识鼠标键的按下状态。 相似的消息有: WM_LBUTTONUP:放开鼠标左键时产生 WM_RBUTTONDOWN:单击鼠标键时产生 WM_RBUTTONUP:放开鼠标右键时产生 WM_LBUTTONDBLCLK:双击鼠标左键时产生 WM_RBUTTONDBLCLK:双击鼠标右键时产生 (2)WM_KEYDOWN ) 这是在按下一个非系统键时产生的消息。系统键是指实现
系统操作的组合 键,例如 Alt 与某个功能键的组合以实现系统菜单操作等。其附加消息参数 wParam 为按下键的虚拟键码,虚拟键码用以标识按下或释放的键,例如功能键 F1 的虚拟键码在 windows.h 头文件中定义为 VK_F1,lParam 记录了按键的重复 次数、扫描码、转移代码、先前键的状态等信息。此外,相似的消息还有 WM_KEYUP,它是放开非系统键时产生的 (3)WM_CHAR ) 这也是按下一个非系统键时产生的消息。附加信息参数 wParam 为按键的 ASCII 码,lParam 与 WM_KEYDOWN 中的 lParam 的意义相同。 (4)WM_CREATE ) 此消息是由 CreatWindow()函数发出的消息。附加信息参数 wParam 未用, lParam 包含一个指向 CREATESTRUCT 数据结构的指针,该结构是传递给 CreateWindow()函数的参数的副本
。 (5)WM_CLOSE ) 关闭窗口时产生此消息,附加信息参数均未用。 (6)WM_DESTROY ) 消除窗口时由 DestroyWindow()函数发出。附加信息参数 wParam 和 lParam 均未用。 (7)WM_QUIT ) 这是退出应用程序时 PostQuitMessage()函数发出的消息。附加信息参数 wParam 含有退出代码,退出代码标识应用程序退出运行时的有关信息;附加信 息参数 lParam 未用。 (8)WM_PAINT ) 当发生用户区移动或显示事件、用户窗口改变大小的事件、程序通过滚动条 滚动窗口时,均产生一条 WM_PAINT 消息。此外,当下拉式菜单关闭并需要恢 复被覆盖的部分以及 Windows 清除对话框或消息框等对象,并需要恢复被覆盖 的部分时,也将产生 WM_PAINT 消息。
6、Windows 应用程序基本结构
一个完整的 windos 应用
程序通常由下面五种类型的文件组成:
1.扩展名为 .c/.cpp 的C语言程序源文件 2.扩展名为 .h 的头文件 3. 扩展名为 .rc 的资源描述文件 4. 扩展名为 .def 的模块定义文件 5. 扩展名为 .mak 的项目文件
7、源程序组成结构 、
windows 应用程序也有一个入口函数 WinMain ,用于完成一系列的定义和 初始化工作, 并产生消息循环。 消息循环是整个程序运行的核心。 此外, (处 窗口 理)函数 WndProc 是处理接收到的消息的函数。其中包含了应用程序对各种可 能接收到的消息的处理过程。 WinMain 函数的功能: 注册窗口类,建立窗口及执行其他必要的初始化
工作 进入消息循环,根据从应用程序消息队列接受的消息调用相应的处理过程。 当消息循环检测到 WM_QUIT 消息时终止程序运行。 WinMian 函数由三个基本组成部分:函数说明、初始化和消息循环。 (1)函数说明 函数说明 int WINAPI WinMain ( HINSTANCE hThisInst, // 应用程序当前实例句柄 HINSTANCE hPrevInst, // 应用程序其它实例句柄 LPSTR lpszCmdLine, // 指向程序命令行参数的指针 Int nCmdShow // 应用程序开始执行时窗口显示方式的标识 ) 应当注意到, windows 程序可能并行的进行多次执行,因而可能出现同一 个应用程序的多个窗口同时存在的情况。在 windows 中,每执行一次称其为一 个实例( instance ) ,并使用一个实例句柄进行唯一的标识。 (2)初始化工作 初始化工作 包括:窗口类的定义,注册,创建窗口