Skip to content

Tools - 窗口工具类

cToolsWindow - 窗口操作工具

概述

提供窗口置顶、窗口切换、强制获取焦点等功能。

方法

TopMost

设置窗口置顶/取消置顶。

vb
Public Sub TopMost(ByVal hWnd As Long, Optional Cancel As Boolean)

参数:

参数名类型说明
hWndLong窗口句柄
CancelBoolean是否取消置顶(默认 False)

示例:

vb
' 设置置顶
VBMAN.ToolsWindow.TopMost Me.hWnd

' 取消置顶
VBMAN.ToolsWindow.TopMost Me.hWnd, True

SwitchToThis

切换到指定窗口(模拟 Alt+Tab 效果)。

vb
Public Sub SwitchToThis(ByVal hWnd As Long, Optional IsAltTab As Boolean = True)

示例:

vb
' 切换到当前窗口
VBMAN.ToolsWindow.SwitchToThis Me.hWnd

ActiveForm

强制将窗口设置为前景窗口(绕过系统限制)。

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 组合使用

VB6及其LOGO版权为微软公司所有