### VC++深入详解学习笔记知识点概述 #### 一、Windows程序运行原理及程序编写流程 ##### 1. Windows API与Win32 SDK - **Windows API**(Application Programming Interface): 是一组预定义的函数集合,它允许开发者访问底层操作系统功能,如文件管理、图形界面等。所有这些函数都在`Windows.h`头文件中声明。 - **Win32 SDK** (Software Development Kit): 包括了用于开发Windows应用程序的所有必要组件,如API函数、文档以及一些辅助开发工具。它是针对32位Windows系统的。 ##### 2. 窗口与句柄 - **窗口**: 在Windows系统中,窗口是指一个矩形区域,用于应用程序与用户的交互。每个窗口都有自己的客户区和非客户区。 - **句柄 (HWND)**: 句柄是Windows用来唯一标识一个窗口的标识符。获取了一个窗口的句柄之后,就可以对其进行各种操作。除了窗口句柄外,还有其他类型的句柄,比如光标句柄(HCURSOR)和图标句柄(HICON)等。 ##### 3. 消息与消息队列 - **消息 (MSG)**: 在Windows程序设计中,消息是一种传递信息的基本单元。它通常包含了一些数据,如窗口句柄、消息类型、参数等。消息的具体结构定义在`Windows.h`中。 - **消息队列**: 每个Windows应用程序都会有一个消息队列,用于存储发送给该应用程序的所有消息。应用程序通过消息循环来处理这些消息。消息队列中的消息是由操作系统自动产生的,当有新的消息时,它会被加入到队列中等待处理。 ##### 4. 创建完整的Win32程序的主要步骤 1. **WinMain函数**: 这是Windows应用程序的入口点,相当于C语言中的`main()`函数。 2. **创建窗口**: 包括设计窗口类、注册窗口类、创建窗口实例以及显示窗口。 - 设计窗口类: 定义窗口的行为和外观。 - 注册窗口类: 向系统注册新创建的窗口类。 - 创建窗口: 使用`CreateWindow()`函数创建窗口实例。 - 显示窗口: 使用`ShowWindow()`函数显示窗口。 3. **消息循环**: 应用程序通过消息循环来不断地从消息队列中获取并处理消息。 4. **窗口过程函数**: 这是一个回调函数,用于处理发送给窗口的消息。 ##### 5. 回调函数的实现机制 - **定义回调函数**: 首先需要定义一个函数,该函数将在特定条件下被调用。 - **注册回调函数**: 将回调函数的地址(函数指针)注册给调用者。 - **调用回调函数**: 当特定事件发生时,调用者使用之前注册的函数指针来调用回调函数。 ##### 6. 其他重要知识点 - **加载图标**: 使用`LoadIcon()`函数加载窗口图标,并返回系统分配给该图标的句柄。 - **格式化字符串**: `sprintf()`用于格式化字符串,在MFC中则使用`CString::Format()`。 - **设备上下文**: 使用`GetDC()`和`ReleaseDC()`获取和释放设备上下文,以防止内存泄漏。 - **画笔和画刷**: 使用`GetStockObject()`获取系统预定义的画笔、画刷等对象的句柄。 - **NULL与0**: 对于指针类型,通常使用`NULL`表示空指针;对于整型变量,则使用`0`表示空值。 - **野指针**: 当一个指针指向的内存被释放后,该指针就变成了野指针。为了避免野指针问题,应该立即将指针设置为`NULL`。 以上内容涵盖了《VC++深入详解学习笔记》的部分关键知识点,深入了解这些概念对于学习和掌握Windows应用程序开发具有重要意义。
剩余63页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助