初学WINAPI笔记:介绍
WINAPI简介(来自百度百科):
视窗操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,
是微软对于Windows操作系统中可用的内核应用程序编程接口的称法。
它设计为由C/C++程序调用,而且它也是应用软件与Windows系统最直接的交互方式。
虽然上面那段话我看得不太懂,但作为一篇笔记,简介还是要的^-^。。
基础的编程流程:
在网上翻阅了很多资料,
我们发现Windows中每一个窗口都包含着一些信息,
包括窗口图标,窗口名称等等。
这些信息统一包含在一个叫窗口类的东西里。
由于用户会输入信息,例如鼠标移动,点击窗口,按键等。
这些被统一称为Message消息。
由于用户会不断的输入信息,
消息也会不断的产生。所以Windows有一个消息队列。
所谓队列,就是先进先出。
每次产生一个消息,系统会放进消息队列中
而我们要从消息队列中提取消息,
先产生的消息我们会先进行处理。(我是这么理解的)
这里有一些函数:
PeekMessage:从消息队列中取出消息
TranslateMessage:字面意思:翻译消息。
由于取出的消息有一些不可思议的地方(我解释不清楚),总之需要转换一下消息。
DispatchMessage:通过一些神奇的操作,将这个消息发送给回调函数(WndProc)。
我们可以在WndProc里面处理该消息。
那么可以总结出,
Windows编程的基础流程是:
1.注册窗口类,
2.创建窗口(并刷新窗口)
3.PeekMessage(从消息队列中取出消息)
4.TranslateMessage(稍微转化一下消息)
5.DispatchMessage(把消息调度给回调函数,进行处理)
6.回到步骤3
以上操作中,3到6是消息循环。
一旦用户关闭窗口(WM_CLOSE),
消息队列中会产生摧毁窗口的消息(WM_DESTROY),
最后产生WM_QUIT消息,窗口就正式关闭了,从而不再接受任何消息。
所以有了一下伪代码:
1 | main{ |