获取一个窗口的状态(最小化、最大化)

方法一
WINDOWPLACEMENT   ws;  
  ws.length   =   sizeof(WINDOWPLACEMENT);  
  GetWindowPlacement(Handle,   &ws);  
  switch   (ws.showCmd)  
  {  
      case   1://正常;  
      case   2://最小化;  
      case   3://最大化;  
  }  
 
方法二
判断最小化:  
IsIconic()     
    The   IsIconic   function   determines   whether   the   specified   window   is   minimized   (iconic).
    BOOL   IsIconic(
        HWND   hWnd   //   handle   of   window
        );

  Parameters  
  hWnd  
  Identifies   the   window.    
 
  Return   Values  
  If   the   window   is   iconic,   the   return   value   is   nonzero.  
  If   the   window   is   not   iconic,   the   return   value   is   zero.    
   
   
  判断最大化  
IsZoomed()    
  The   IsZoomed   function   determines   whether   a   window   is   maximized.      
  BOOL   IsZoomed(
        HWND   hWnd   //   handle   of   window  
        );  

  Parameters  
 
  hWnd  

  Identifies   the   window.    
 
  Return   Values  
   
  If   the   window   is   zoomed,   the   return   value   is   nonzero.  
  If   the   window   is   not   zoomed,   the   return   value   is   zero.    
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以使用以下代码来获取 Unity 窗口状态: ``` using UnityEngine; using System.Runtime.InteropServices; public class WindowStatus : MonoBehaviour { // 导入 Win32 API [DllImport("user32.dll")] private static extern bool IsIconic(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool IsZoomed(IntPtr hWnd); // 获取 Unity 窗口的句柄 private IntPtr unityHwnd = IntPtr.Zero; void Start() { unityHwnd = GetUnityWindowHandle(); } void Update() { // 获取窗口最小化状态 bool isMinimized = IsIconic(unityHwnd); // 获取窗口最大化状态 bool isMaximized = IsZoomed(unityHwnd); // 输出窗口状态 Debug.Log("窗口最小化状态:" + isMinimized); Debug.Log("窗口最大化状态:" + isMaximized); } // 获取 Unity 窗口的句柄 private IntPtr GetUnityWindowHandle() { IntPtr hwnd = IntPtr.Zero; // 获取 Unity 主窗口的句柄 if (Application.platform == RuntimePlatform.WindowsPlayer) { hwnd = GetForegroundWindow(); } else if (Application.platform == RuntimePlatform.WindowsEditor) { hwnd = GetUnityEditorMainWindowHandle(); } return hwnd; } // 获取当前处于焦点的窗口的句柄 [DllImport("user32.dll")] private static extern IntPtr GetForegroundWindow(); // 获取 Unity 编辑器主窗口的句柄 [DllImport("user32.dll")] private static extern IntPtr GetUnityEditorMainWindowHandle(); } ``` 这段代码通过 Win32 API 获取 Unity 窗口的句柄,并调用 IsIconic 和 IsZoomed 函数获取窗口最小化最大化状态。请注意,这段代码只能在 Windows 平台上使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值