MFC 数据型态(data types)

来源:互联网 发布:开展网络公益活动总结 编辑:程序博客网 时间:2024/05/22 07:39

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

面这些是 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 modelpascall 函式呼叫习惯

#define pascal __stdcall // 也被 stdcall 函式呼叫习惯取而代之。

#define cdecl _cdecl

#define CDECL _cdecl

#define CALLBACK __stdcall // 侯俊杰注:在 Windows programming 演化过程

#define WINAPI __stdcall // 曾经出现的 PASCALCALLBACKWINAPI

#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;

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, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

typedef struct tagSIZE

{

LONG cx;

LONG cy;

} SIZE, *PSIZE, *LPSIZE;

 

 
原创粉丝点击