WinMain函数

来源:互联网 发布:mysql设置时间默认值 编辑:程序博客网 时间:2024/05/01 03:29

WinMain函数
     WinMain函数作为Win32程序的入口点被系统调用。

     int WINAPI WinMain(
                         HINSTANCE hInstance,      // 程序当前实例句柄
                         HINSTANCE hPrevInstance,  // 程序之前实例句柄
                         LPSTR lpCmdLine,          // 命令行
                         int nCmdShow              // 显示窗口状态
                        );

参数:
    hInstance
    当前程序的实例句柄
   
    hPrevInstance
    之前的程序实例句柄。对于Win32程序这个参数一直是NULL。 如果你需要检测程序的另一个实例是否已经存在,你可以用CreateMutex函数创建一个唯一的命名的互斥量。即使这个互斥量已经存在,仍然可以创建成功,只不过GetLastError函数将返回ERROR_ALREADY_EXISTS.这表明程序的另一个实例已经存在,因为它先创建了互斥量。
  
    lpCmdLine
    指向以null结尾的字符串的指针,为应用程序指定命令行,不包括程序的名字。利用GetCommandLine函数获取整个命令行。
 
    nCmdShow
    指定窗口以何种形式显示,这个参数可以是以下值中的一个:
Value                                      Meaning
SW_HIDE                               隐藏当前窗口,激活另外一个窗口

SW_MAXIMIZE                       最大化指定窗口
                      
SW_MINIMIZE                        最小化指定窗口,并以Z顺序激活接下来的最高级别窗口

SW_RESTORE                      激活并显示窗口如果窗口是最小化或最大化状态,系统会把窗口恢复到原来

                                               的尺寸和位置。当恢复最小化窗口时,应用程序应该指定这个值。

SW_SHOW                            以当前尺寸和位置激活并显示窗口

SW_SHOWMAXIMIZED         以最大化形式激活并显示窗口

SW_SHOWMINIMIZED          以最小化形式激活并显示窗口

SW_SHOWMINNOACTIVE    显示最小化窗口,这个值类似于SW_SHOWMINIMIZED,除了这个值不能激活窗口

SW_SHOWWNA                     以当前尺寸和位置显示窗口,这个值类似于SW_SHOW,除了这个值不能激活窗口

SW_SHOWNOACTIVATE       以最近的尺寸和位置显示窗口,这个值类似于SW_SHOWNORMAL,

                                                 除了这个值不能激活窗口

SW_SHOWNORMAL              激活并显示窗口。如果窗口是最小化或最大化状态,系统恢复窗

                                                口原来的尺寸和位置。应用程序在第一次显示窗口应该制定这个值。

 

返回值
       如果这个函数成功,它将接收WM_QUIT消息后结束。函数应该返回包含在消息参数wParam中的退出值。如果函数在进入消息循环之前结束,它应该返回0。

备注
       WinMain函数应该能初始化应用程序,显示主窗口,进入一个消息检索和分配循环。这个循环是应用程序其他执行操作中最高级别的控制结构。当接收到WM_QUIT消息时,消息循环会结束。在这个时候,WinMain函数应退出应用程序,并返回一个值,传递到WM_QUIT消息参数wParam中。如果调用PostQuitMessage函数返回了WM_QUIT,那么参数wParam的值就是PostQuitMessage函数参数nExitCode的值。更多信息参见创建消息循环(Creating a Message Loop).
        ANSI应用程序可以利用WinMain函数的参数lpCmdLine获得命令行字符串,除了程序名字。WinMain函数不能返回Unicode字符串的原因是参数lpCmdLine的数据类型是LPSTR,而不是LPTSTR。GetCommandLine函数可以用来在命令行获取Unicode字符串,因为这个数据类型是LPTSTR。             

原创粉丝点击