ShowWindow
的
API
函数是显示窗口,但它在第一次调用和以后的调用是有区别的。第一次调用时,它的输入参数
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
行里显示窗口为原来的状态。