WinMain函数

来源:互联网 发布:淘宝黑名单在哪里 编辑:程序博客网 时间:2024/05/01 02:33

在基于Win32的应用程序中,当系统初始化的时候,需要找到一个入口点,从而执行相应的应用程序。这同Win32 Console Application(Win32控制应用程序)中的main入口函数一样,在控制台应用程序初始化的时候,会首先找到main入口函数,然后执行函数体中更加复杂程序功能。

查看MSDN,关于WinMain入口主函数,定义如下:

int WINAPI WinMain(
HINSTANCE
 hInstance// 处理当前应用程序实例的句柄
HINSTANCE hPrevInstance// 处理前一个应用程序实例的句柄
LPSTR lpCmdLine,      // 指向命令行的指针
int nCmdShow          // 显示窗口的状态
);

该WinMain主函数初始化应用程序,显示一个主窗口。

参数说明:

第一个参数hInstance是指当前应用程序实例的句柄;

第二个参数hPrevInstance是处理上一个应用程序实例的句柄,在基于Win32的应用程序,该参数总是为NULL;

第三个参数lpCmdLine是指向命令行的指针;

第四个参数nCmdShow,可以查看MSDN,共有下面的一些状态,大概可以看出呈现的状态:

SW_HIDE
SW_MINIMIZE
SW_RESTORE
SW_SHOW
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVE
SW_SHOWNA
SW_SHOWNOACTIVATE
SW_SHOWNORMAL

在WinMain函数中,你可以像在main中一样进行编程。应该清楚一点,main函数是Console程序的入口函数,执行的时候会显示一个命令行窗口(像DOS窗口一样),而执行WinMain函数的时候,是显示一个Windows窗口,因此,在WinMain函数中可以调用Win32 API函数建立窗体、设定窗口的风格等等。

关于建立窗体,需要用到RegisterClass函数,它实现一个窗体的注册;需要用到CreateWindow函数,它能够创建一个窗体;需要用到ShowWindow函数,它能够使创建的窗体显示出来;进行消息循环,需要用到PeekMessage函数、TranslateMessage函数、DispatchMessage函数,等等。