【轉載】ShowWindow函數

ShowWindowAPI函數是顯示窗口,但它在第一次調用和以後的調用是有區別的。第一次調用時,它的輸入參數nCmdShow是需要輸入WinMain函數裏傳入來的nCmdShow參數,而不能是其它參數。
 
函數聲明如下:
WINUSERAPI
BOOL
WINAPI
ShowWindow(
    __in HWND hWnd,
    __in int nCmdShow);
hWnd是窗口的句柄。
nCmdShow是窗口顯示的狀態。可能設置的值如下:
SW_FORCEMINIMIZE是強制窗口最小化,主要使用在非窗口主線程的其它線程來操作。
SW_HIDE是顯示窗口爲隱藏狀態。
SW_MAXIMIZE是顯示窗口爲最大化。
SW_MINIMIZE是顯示窗口爲最小化。
SW_RESTORE是從任務裏恢復窗口顯示。
SW_SHOW是激活窗口爲當前窗口,並且顯示爲當前的大小和位置。
SW_SHOWDEFAULT是創建進程時顯示窗口的值。
SW_SHOWMAXIMIZED是激活窗口爲當前窗口,並且顯示最大化。
SW_SHOWMINIMIZED是激活窗口爲當前窗口,並且顯示最小化。
SW_SHOWMINNOACTIVE是顯示窗口爲最小化,但不激活它作爲當前窗口。
SW_SHOWNA是顯示爲當前的大小和位置,但不激活它作爲當前窗口。
SW_SHOWNOACTIVATE是顯示當前窗口,但不激活它作爲當前窗口。
SW_SHOWNORMAL是顯示當前窗口,但窗口是最小化或最大化時會恢復窗口爲原來的大小和位置。
 
調用這個函數的實例如下:
#001 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
#002 {
#003  HWND hWnd;
#004 
#005  hInst = hInstance; // 保存實例句柄到全局變量裏。
#006 
#007  hWnd = CreateWindow(szWindowClass,
#008         szTitle,
#009         WS_OVERLAPPEDWINDOW,
#010         CW_USEDEFAULT,
#011         0,
#012         CW_USEDEFAULT,
#013         0,
#014         NULL,
#015         NULL,
#016         hInstance,
#017         NULL);
#018 
#019  if (!hWnd)
#020  {
#021         return FALSE;
#022  }
#023 
#024  ShowWindow(hWnd, nCmdShow);
#025  UpdateWindow(hWnd);
#026 
#027  //
#028  //蔡軍生 2007/07/14
#029  //顯示窗口測試。
#030  MessageBox(NULL,_T("最大化"),_T("測試"),MB_OK);
#031 
#032  //顯示窗口爲最大化。
#033  ShowWindow(hWnd, SW_SHOWMAXIMIZED);
#034 
#035  
#036  MessageBox(NULL,_T("原來位置"),_T("測試"),MB_OK);
#037 
#038  //顯示窗口爲原來位置。
#039  ShowWindow(hWnd, SW_SHOWNORMAL);
#040 
#041 
#042  return TRUE;
#043 }
 
在第24行裏先調用這個函數顯示創建進程的窗口狀態。
33行裏顯示窗口爲最大化。
39行裏顯示窗口爲原來的狀態。
 

這樣就可以掌握了ShowWindow函數的使用。 

【出處】http://blog.csdn.net/linhong34/archive/2007/08/01/1721829.aspx

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