写给想我一样刚学API的同志们
刚学习windows API编程,有点感触,希望后来学习的人能够轻松一些。
刚开始心急,把代码copy一下,就开始瞎看了。到最后还是什么也看不懂。
我觉得刚开始学习的人应该把基础的东西都看懂。
首先是基本的数据类型;其次是基本的数据结构;再次是常用的几个API(它不就是个函数吗!);最后就是多敲代码,看自己的造化啦。
1,基本的数据类型。(我自己把原数据类型瞎拆了拆,拆错被骂我^_^)
char=character 字符
ch =character 字符
c =count 计数器(x,y坐标)
str=string 字符串
const=constant 常量
ctry=country 国家
dlg=dialog 对话
proc=process 过程;指向函数的指针
enumrs=enumerates 枚举,列举
enum =enumerates 枚举,列举
enhmeta=增强
lang=language 语言
g=gdi 图形设别接口
obj=object 对象
h=handle 句柄
p=point 指针
u=un 无符号
accel=accelerate加速
conv=conversation 会话
dc=device 设备
DDE=动态数组交换
MIDI=乐器数字化界面
rgn=region 域
rsrc=resource 资源
wnd=window 窗口
int=integer 整数
lc=locale 所在国家,现场
lp=long point 指向“NULL”结尾的Unicode字符串的指针(32位)
w=wide 宽,指Unicode字符集
parem=parameter 参数
lu=logcal unit 局部唯一
MCI=媒体控制接口
SID=加密标识符
LUID=局部唯一标识符
具体的数据类型总结请看 =Windows常用数据类型=
2,基本数据结构。(刚看到第三单元,被的数据结构俺还不知道)
1.消息结构
typedef struct tagMSG {
HWND hwnd; // 获得消息的窗口句柄(HWND 窗口句柄)
UINT message; // 消息标志 (UINT 无符号整数)
WPARAM wParam; // 消息的附加信息 (WPARAM 32位消息参数)
LPARAM lParam; // 消息的附加信息 (LPARAM 32位消息参数)
DWORD time; // 消息的发送时间 (DWORD 双字(32位))
POINT pt; // 当消息发送时,鼠标所处的屏幕位置
} MSG, *PMSG;
2.窗口类结构
typedef struct _WNDCLASS {
UINT style; // 窗口类的风格 (UINT 无符号整数)
WNDPROC lpfnWndProc; // 指向窗口过程的指针
int cbClsExtra; // 分派给窗口类的扩展的字节数
int cbWndExtra; // 分派给窗口实例的扩展的字节数
HINSTANCE hInstance; // 窗口的实例句柄
HICON hIcon; // 类图标的句柄
HCURSOR hCursor; // 类鼠标指针的句柄
HBRUSH hbrBackground; // 刷新背景所用的画刷的句柄
LPCTSTR lpszMenuName; // 窗口类包含的菜单的名称 (LPCTSTR 指向一个以"NULL"结束的Unicode或Windows字符串常量的指针)
LPCTSTR lpszClassName; // 窗口类名 (LPCTSTR 指向一个以"NULL"结束的Unicode或Windows字符串常量的指针)
} WNDCLASS, *PWNDCLASS;
3. 矩形结构
typedef struct _RECT {
LONG left; // 左上点的X坐标
LONG top; // 左上点的Y坐标
LONG right; // 右下点的X坐标
LONG bottom; // 右下点的Y坐标
} RECT, *PRECT;
4.
Typedef struct tagPAINTSTRUCT{
??????? HDC hdc ;?????????????? //设备描述表句柄
??????? BOOL fErase ;?????????? //擦除无效矩形背景
??????? RECT rcPaint ; ???????? //标识无效矩形
??????? BOOL fRestore ; ??????? //保留
??????? BOOL flncUpdate ;?????? //保留
??????? BOOL rgbResvered[16] ; //保留
??????? }PAINTSTRUCT ;
5.
typedef struct tagTEXTMETRICA
{
LONG tmHeight; //字符高度
LONG tmAscent; //字符上部高度(基线以上)
LONG tmDescent; //字符下部高度(基线以下)
LONG tmInternalLeading; //
LONG tmExternalLeading; //字体两行间的空隙大小
LONG tmAveCharWidth; //平均字符宽度
LONG tmMaxCharWidth; //最大字符宽度
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BYTE tmFirstChar;
BYTE tmLastChar;
BYTE tmDefaultChar;
BYTE tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily; //第四位表示字体间距
BYTE tmCharSet;
} TEXTMETRICA, *PTEXTMETRICA, NEAR *NPTEXTMETRICA, FAR *LPTEXTMETRICA;
不要抱怨Windows编程难,把上面的东西弄懂了,那源代码会很简单。