Delphi WinAPI ShowWindow - 设置指定窗口的显示状态
Delphi WinAPI ShowWindow - 设置指定窗口的显示状态
ShowWindow
原型:
BOOL ShowWindow(
[in] HWND hWnd, //窗口句柄
[in] int nCmdShow //控制窗口的显示方式
);
参数:
nCmdShow //控制窗口的显示方式。如果启动应用程序的程序提供STARTUPINFO结构,则在应用程序第一次调用ShowWindow时忽略此参数。否则,第一次调用ShowWindow时,该值应该是WinMain函数在其nCmdShow参数中获得的值。在后续调用中,此参数可以是以下值之一:
- SW_HIDE 0 //隐藏窗口并激活另一个窗口。
- SW_SHOWNORMAL 或 SW_NORMAL 1 //激活并显示一个窗口。如果窗口最小化或最大化,系统会将其恢复到原始大小和位置。应用程序在第一次显示窗口时应指定此标志。
- SW_SHOWMINIMIZED 2 //激活窗口并将其显示为最小化窗口。
- SW_SHOWMAXIMIZED 或 SW_MAXIMIZE 3 //激活窗口并将其显示为最大化窗口。
- SW_SHOWNOACTIVATE 4 //以最近的大小和位置显示窗口。该值与SW_SHOWNORMAL类似,只是窗口未激活。
- SW_SHOW 5 //激活窗口并以其当前大小和位置显示。
- SW_MINIMIZE 6 //最小化指定窗口并按Z顺序激活下一个顶级窗口。
- SW_SHOWMINNOACTIVE 7 //将窗口显示为最小化窗口。该值与SW_SHOWMINIMIZED类似,只是窗口未激活。
- SW_SHOWNA 8 //以当前大小和位置显示窗口。该值与SW_SHOW类似,只是窗口未激活。
- SW_RESTORE 9 //激活并显示窗口。如果窗口最小化或最大化,系统会将其恢复到原始大小和位置。应用程序在还原最小化窗口时应指定此标志。
- SW_SHOWDEFAULT 10 //根据启动应用程序的程序传递给CreateProcess函数的STARTUPINFO结构中指定的SW_ value设置显示状态。
- SW_FORCEMINIMIZE 11 //最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志。
返回值(类型:布尔):
如果窗口以前可见,则返回值为非零。如果之前隐藏了该窗口,则返回值为零。
示例1:
HINSTANCE hinst;
HWND hwndMain;
// 创建主窗口。
hwndMain = CreateWindowEx(
0, // no extended styles 没有扩展样式
"MainWClass", // class name 类名
"Main Window", // window name 窗口名
WS_OVERLAPPEDWINDOW | // overlapped window 重叠窗口
WS_HSCROLL | // horizontal scroll bar 水平滚动条
WS_VSCROLL, // vertical scroll bar 垂直滚动条
CW_USEDEFAULT, // default horizontal position 默认水平位置
CW_USEDEFAULT, // default vertical position 默认垂直位置
CW_USEDEFAULT, // default width 默认宽度
CW_USEDEFAULT, // default height 默认高度
(HWND) NULL, // no parent or owner window 没有父窗口或所有者窗口
(HMENU) NULL, // class menu used 使用了类菜单
hinst, // instance handle 实例句柄
NULL); // no window creation data 没有窗口创建数据
if (!hwndMain)
return FALSE;
//使用启动应用程序的程序指定的标志显示窗口,并向应用程序发送WM_PAINT消息。
ShowWindow(hwndMain, SW_SHOWDEFAULT);
UpdateWindow(hwndMain);
示例2:
case WM_CLOSE:
//创建消息框。如果用户单击“是”按钮,则销毁主窗口。
if (MessageBox(hwnd, szConfirm, szAppName, MB_YESNOCANCEL) == IDYES)
DestroyWindow(hwndMain);
else
return 0;
case WM_DESTROY:
//发布WM_QUIT消息以退出应用程序并终止。
PostQuitMessage(0);
return 0;
创建时间:2022.03.28 更新时间: