首页 > 代码库 > 【转载】ShowWindow函数

【转载】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