Tools - 窗口工具类
cToolsWindow - 窗口操作工具
概述
提供窗口置顶、窗口切换、强制获取焦点等功能。
方法
TopMost
设置窗口置顶/取消置顶。
vb
Public Sub TopMost(ByVal hWnd As Long, Optional Cancel As Boolean)参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
hWnd | Long | 窗口句柄 |
Cancel | Boolean | 是否取消置顶(默认 False) |
示例:
vb
' 设置置顶
VBMAN.ToolsWindow.TopMost Me.hWnd
' 取消置顶
VBMAN.ToolsWindow.TopMost Me.hWnd, TrueSwitchToThis
切换到指定窗口(模拟 Alt+Tab 效果)。
vb
Public Sub SwitchToThis(ByVal hWnd As Long, Optional IsAltTab As Boolean = True)示例:
vb
' 切换到当前窗口
VBMAN.ToolsWindow.SwitchToThis Me.hWndActiveForm
强制将窗口设置为前景窗口(绕过系统限制)。
vb
Public Sub ActiveForm(ByVal hWnd As Long)说明:
此方法通过模拟 Alt 键按下来绕过 Windows 对 SetForegroundWindow 的限制。建议在 Form_LostFocus 事件中调用,可以实现窗口永不失焦的效果。
示例:
vb
Private Sub Form_LostFocus()
' 强制获取焦点
VBMAN.ToolsWindow.ActiveForm Me.hWnd
End Sub完整示例
vb
Private Sub Form_Load()
' 窗口置顶
VBMAN.ToolsWindow.TopMost Me.hWnd
' 切换到本窗口
VBMAN.ToolsWindow.SwitchToThis Me.hWnd
End Sub
Private Sub cmdToggleTopmost_Click()
Static IsTopmost As Boolean
IsTopmost = Not IsTopmost
VBMAN.ToolsWindow.TopMost Me.hWnd, Not IsTopmost
cmdToggleTopmost.Caption = IIf(IsTopmost, "取消置顶", "置顶窗口")
End Sub应用场景
| 场景 | 使用方法 |
|---|---|
| 悬浮窗 | TopMost 保持窗口在最前 |
| 弹窗提醒 | SwitchToThis 切换到提醒窗口 |
| 模态对话框 | ActiveForm 确保对话框保持焦点 |
| 全屏应用 | TopMost + ActiveForm 组合使用 |