操纵系统提供了很多对外的函数供程序调用,及windownsAPI,函数,这些函数就是程序开发包。编写了一个应用程序以后,该程序会处理操作系统传递过来的消息,我们对电脑做的操作,例如鼠标点击或者键盘按下,这个事件操纵系统会保持在消息队列中,消息队列是按栈的形式组织的,先进先出,然后应用程序会把消息队列里的消息取走,对其进行处理,主要的代码区也就是这些事件处理程序了。需要记住操作系统并不能处理这些事件,消息是以结构体的形式保存的。一个消息的结构为
typedef struct tagMCG{
HWND hwnd;//窗口句柄
UINT message//指定消息的标识符
WPARAM wParam;
LPARAM lParam;//WPARAM和LPARAM都是宏定义,int类型,为了便于理解这样定义保存消息的附加信息
DWORD time;//保存消息的时间
POINT pt;//事件发生时光标的位置
}
如果不理解变量的含义可以去微软的msdn里去查,上面有很详细的解释,事件的处理程序则是由应用程序来编写的。
在某个活动窗体下按下鼠标左键就是传送给该窗体的。
不管是进队消息还是不进对消息,最后都是系统调用窗口的过程函数对其进行处理。
WinMain函数是windowns程序的入口函数,所有的程序都是从这里开始执行的。
WinMain函数的原型声明如下
int WINAPI WinMain{
HINSTANCE hInstance;//该程序当前运行的实例句柄
HINSTANCE hPrevInstance;//当前实例的前一个实例句柄
LPSTR lpCmdLine//命令行参数
int nCmdShow;//指定程序窗口应如何显示
}
WinMain函数由操作系统区调用的,