第4节  Windows数据类型

更新于 2026年10月10日 版权声明
第4节 Windows数据类型

刚开始进行Win32开发时,发现一些变量类型似乎在C语言中未曾见过。其实这些变量类型是与C/C++已有的数据类型相近的,是通过C语言的原始类型重新定义而成的。引入这些数据类型的主要目的是为了便于程序员开发Windows应用程序,增强程序的可读性;另一个目的是为了便于代码移植,从16位操作系统升级到32位操作系统的过程中,这些重新定义的数据类型就起了相当重要的作用。

这些重新定义的变量类型就叫作Windows数据类型,主要定义在Windef.h的系统头文件中。当包含了Windows.h或者其他任何Windows头文件时,都会自动包含Windef.h.。简单的Windows数据类型见表2-2。

表2-2 简单的Windows数据类型

图示

(续)

图示

Windows中定义了一系列的句柄类型,用于操作不同的Windows对象。例如,文件的句柄是HANDLE,窗口的句柄是HWND,绘图对象的句柄是HDC等。句柄是一个指针,指向一个被隐藏了内容的结构体的内存地址。句柄就如同驾驶员的操作手柄,可以让机车前进、后退或者加速、减速一样。在Windows开发过程中,只要获得了对象的句柄就可以随心所欲地操作对应的目标了。句柄数据类型见表2-3。

表2-3 句柄数据类型

图示

(续)

图示(https://www.daowen.com)

在Visual C++6.0的源代码窗口中,选中一个Windows数据类型再按<F12>键,可以查看到的数据类型的定义。例如,HWND的定义是DECLARE_HANDLE H(WND);而DECLARE_HANDLE的定义如下。

#define DECLARE_HANDLEn(ame)\

struct name##__{int unused;};typedef struct name##__*name

在Visual C++6.0中##代表链接符号的意思,最终HWND的定义的结果如下。

struct HWND__{int unused;};

typedef struct HWND__*HWND;

因此,以上所有句柄的定义还是说明了,句柄指向一个被隐藏了结构的数据区域的指针。常用结构体类型见表2-4。

表2-4 常用结构体类型

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)