按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
ON_UPDATE_MAND_UI 增加消息映射表中的项目 第3章、第9章
END_MESSAGE_MAP 结束消息映射表的建置 第3章、第9章
事实上,与其它MFC Programming 书籍相比较,本书最大的一个特色就是,要把上述
这些MFC 宏的来龙去脉交待得非常清楚。我认为这对于撰写MFC 程序是非常重要
的一件事。
337
…………………………………………………………Page 400……………………………………………………………
第篇 湷觥 FC 程式設計
MFC 数据类型 (data types)
下面所列的这些数据类型,常常出现在MFC 之中。其中的绝大部份都和一般的Win32
程序(SDK 程序)所用的相同。
下面这些是和Win32 程序(SDK 程序)共同使用的数据类型:
数据类型 意义
BOOL Boolean 值(布尔值,不是TRUE 就是FALSE )
BSTR 32…bit 字符指针
BYTE 8…bit 整数,未带正负号
COLORREF 32…bit 数值,代表一个颜色值
DWORD 32…bit 整数,未带正负号
LONG 32…bit 整数,带正负号
LPARAM 32…bit 数值,做为窗口函数或callback 函数的一个参数
LPCSTR 32…bit 指针,指向一个常数字符串
LPSTR 32…bit 指针,指向一个字符串
LPCTSTR 32…bit 指针,指向一个常数字符串。此字符串可移植到Unicode 和DBCS (双
字节字集)
LPTSTR 32…bit 指针,指向一个字符串。此字符串可移植到Unicode 和DBCS (双位
组字集)
LPVOID 32…bit 指针,指向一个未指定类型的资料
LPRESULT 32…bit 数值,做为窗口函数或callback 函数的回返值
UINT 在Win16 中是一个16…bit 未带正负号整数,在Win32 中是一个32…bit
未带正负号整数。
WNDPROC 32…bit 指针,指向一个窗口函数
WORD 16…bit 整数,未带正负号
WPARAM 窗口函数的callback 函数的一个参数。在Win16 中是16 bits,在Win32
中是32 bits 。
338
…………………………………………………………Page 401……………………………………………………………
第5章 總觀Application Framework
下面这些是MFC 独特的数据类型:
数据类型 意义
POSITION 一个数值,代表collection 对象(例如数组或串行)中的元素位置。常使用
于MFC collection classes 。
LPCRECT 32…bit 指针,指向一个不变的RECT 结构。
前面所说那些MFC 数据类型与C++ 语言数据类型之间的对应,定义于WINDEF。H
中。我列出其中一部份,并且将不符合(_MSC_VER 》= 800) 条件式的部份略去。
#define NULL 0
#define far //侯俊杰注:Win32 不再有far 或near memory model,
#define near // 而是使用所谓的flat model。pascall 函数调用习惯
#define pascal __stdcall //也被stdcall 函数调用习惯取而代之。
#define cdecl _cdecl
#define CDECL _cdecl
、
#define CALLBACK __stdcall // 侯俊杰注:在Windows programming 演化过程中
#define WINAPI __stdcall // 曾经出现的PASCAL、CALLBACK、WINAPI
#define WINAPIV __cdecl //
APIENTRY,现在都代表相同的意义,就是stdcall
#define APIENTRY WINAPI // 函数调用习惯。
#define APIPRIVATE __stdcall
#define PASCAL __stdcall
#define FAR far
#define NEAR near
#define CONST const
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
339
…………………………………………………………Page 402……………………………………………………………
第篇 湷觥 FC 程式設計
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
/* Types use for passing & returning polymorphic values */
typedef UINT WPARAM;
typedef LONG LPARAM;
typedef LONG LRESULT;
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT; *PRECT; NEAR *NPRECT; FAR *LPRECT;
typedef const RECT FAR* LPCRECT;
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT;