WinMain()函数

来源:互联网 发布:linux下重装nodejs 编辑:程序博客网 时间:2024/04/30 21:49

原型:int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

参数:第一个参数hInstance是唯一标识本程序的实例句柄,系统和其他应用程序通过该句柄与本程序通信。

      第二个参数hPrevInstance是本程序的前一个实例句柄,由于32为Windows采用进程——线程模式,每个线程拥有自己的句柄,因此该参数始终为空。

      第三个参数lpCmdLine是一个字符串指针,只想命令行参数字符串,没有命令行参数时为空。

      第四个参数nCmdShow之命程序最初运行时窗口打开方式,如正常方式、最大化或最小化运行。


WinMain()函数返回一个整数值作为退出代码。

APIENTRY标识函数调用约定。当该函数被调用时,其参数按从左至右的顺序压入栈,再由调用者将参数弹出栈。

 

WinMain()函数在程序执行过程中,完成以下具体工作:

(1)定义一个窗口类。包括定义窗口对象并对其相关成员赋值。

(2)注册窗口类。调用函数RegisterClass()注册窗口类,并判断是否注册成功。其参数是WNDCLASS结构类型指针,用需要注册的窗口对象地址进行调用。

(3)创建窗口。定义注册窗口后,可以创建一个或多个同类型的窗口:由API函数Createwindow()创建窗口,并返回所创建窗口的句柄。

(4)调用API函数showWindow()和UpdateWindow()显示并更新窗口。他们的参数相同,第1个参数是要显示的窗口句柄,第2个参数是窗口显示的方式。

(5)程序运行的准备工作完成,进入消息循环。函数GetMessage()从应用程序消息队列中读取消息,函数TranslateMessage()进行键盘消息转换,然后由函数DispatchMessage()将消息派送给响应的窗口函数进行处理。当消息队列为空时,应用程序进入等待状态,等待用户输入。当函数GetMessage()获取到WM_QUIT消息时,返回FLASE,结束消息循环。

原创粉丝点击