WinMain函數

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。             

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章