0%

Windows编程小记(一)

本文记录了部分在使用C语言编写Windows应用程序的过程中会涉及的基本知识。

Windows API

API全称Application Programming Interface,即应用程序编程接口,Windows把计算机底层复杂的操作(在计算机上层即使执行诸如文件打开、读取、关闭这样看似简单的操作,到了底层是非常复杂的 (☉д⊙) )用函数表示并编译成动态链接库(DLL),在软件开发过程中,通过调用这些函数即可轻松执行相关操作,从而显著提高开发效率。

句柄

在Windows编程中,窗口、控件(窗口中的输入区域、菜单、按钮等)、图像、音频、视频等都被称为资源(Resource)。不同的资源都对应唯一的一个ID,称为句柄(Handle)。程序通过句柄获取对应的资源的信息,也可以使用、修改该资源。

Windows的消息机制

用户敲击键盘、点击鼠标、拖动窗口、选择菜单、输入文字等所有操作都被称为事件(Event),当有事件发生时,Windows会生成一个消息(Message,结构体的一种)并存储到一个由系统维护的队列(数据结构的一种)中,应用程序从队列中获取消息,调用事件处理函数,随后响应用户的操作。

Windows向队列中存储消息与应用程序从队列中获取消息并不是同步的,只要有事件发生,Windows就会把消息存储到队列中,至于消息什么时候被获取,这就是应用程序的事了 ( ˘・з・) 。

消息结构体

消息是一个结构体,定义为:

typedef struct tagMSG
{
HWND hwnd; //消息所属的窗口
UINT message; //消息类型
WPARAM wParam; //指定消息的附加信息
LPARAM lParam; //指定消息的附加信息
DWORD time; //消息存储到队列中的时间
POINT pt; //鼠标指针的当前位置
}MSG;

整理自

Windows API的概念

与windows编程有关的重要概念