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  更新时间: