学API的一点感触

写给想我一样刚学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编程难,把上面的东西弄懂了,那源代码会很简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值