Windows API一日一练(7)ShowWindow函数

Post date: 2012/3/27 上午 07:14:54

分类: Direct3D2007-07-14 08:53 3054人阅读 评论(0) 收藏 举报

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行里显示窗口为原来的状态。

这样就可以掌握了ShowWindow函数的使用。