"小甲鱼 WindowsSDK 编程学习笔记"
Windows SDK(Software Development Kit)是微软提供的开发工具集合,用于创建和管理在Windows操作系统上的应用程序。这份笔记详细记录了小甲鱼在讲解Windows SDK编程时的重点内容,涵盖了从基础的程序创建到复杂的GUI(图形用户界面)元素处理。
1. 第一个程序
在Windows编程中,`WinMain`是应用程序的入口点,通常定义为`int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)`。在示例中,`MessageBox`函数被用来显示一个简单的对话框,表明程序运行成功。
2. 消息系统
Windows的消息机制是事件驱动的,消息分为队列消息和非队列消息。非队列消息如`WM_GETMINMAXINFO`、`WM_NCCREATE`等直接传递给`WndProc`函数处理,而无需先入消息队列。`ShowWindow`函数会触发一系列与窗口显示相关的非队列消息。
3. GUI 映射模式
GUI映射模式决定了屏幕坐标如何转换为设备坐标,影响绘图操作。常见的映射模式包括MM_TEXT、MM_LOMETRIC、MM_HIMETRIC等。
4. 视图和窗口
视图(View)是MFC框架中的一个类,它负责实际的绘图工作,而窗口(Window)则负责接收和处理消息。视图通常作为窗口的子窗口存在。
5. 绘图函数
笔记详细介绍了各种绘图函数,如绘制点、直线、折线、贝塞尔曲线以及边框。画笔和画刷是控制颜色和样式的关键对象,用于定义线条和填充。
6. 键盘和鼠标处理
笔记讲解了如何处理键盘和鼠标事件,包括字符消息、鼠标点击、双击、鼠标滚轮以及鼠标捕获。例如,`PeekMessage`函数用于检查消息队列是否有消息,而`WM_MOUSEWHEEL`消息则表示鼠标滚轮的滚动事件。
7. 区域和裁剪
区域(Region)可以用来定义窗口或绘图的特定部分,用于剪裁或限制绘图操作。`WM_NCCALCSIZE`消息用于计算非客户区的大小和位置,而`WM_WINDOWPOSCHANGING`消息则在窗口位置改变时触发。
8. 计时器
计时器功能允许开发者设置定时事件,通过`SetTimer`函数创建,并通过`WM_TIMER`消息来响应。
9. 各种按钮
Windows SDK提供了多种类型的按钮控件,如普通按钮、复选框、单选按钮等,它们都有相应的消息和处理方式。
10. 其他元素
笔记还涉及滚动条的创建和使用,以及窗口尺寸的获取和调整,这些都是构建复杂GUI界面的重要组成部分。
通过这份笔记,读者可以深入理解Windows SDK编程的基本概念和技术,为开发Windows应用程序打下坚实的基础。