💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 说明: 本案例基于clswindow开发的一个小软件,功能是方便的对目标窗口设置置顶还是取消置顶。软件启动后会在每个窗口的标题栏右端加一个置顶功能的小控制块。通常情况下点击它会使得对应的窗口置顶,如果要取消置顶可以再次点击一下。 ## 测试环境:win7x64 >[info]**提示:** 在win10上可能有一些位置遮挡本身的最小化等按钮,后期会调整。 ## 部分代码摘录: **说明:** 以下是部分代码摘录,您会看到软件大量使用了SetTop等方法。完整代码可以从底部github获得,里面有直接的编译好的exe可以直接使用。 ``` Private Sub addControlBox() Dim w As New clsWindow, s$, v, i% w.GetWindowByTitleEx ".+?", 0, s, True, , DisplayedWindow v = Split(s, " ") For i = 0 To UBound(v) If v(i) <> Me.Hwnd Then If Not isHasAddControlBox(v(i)) Then w.Hwnd = v(i) If InStr("|SetWindowTop|Program Manager|", "|" & w.Caption & "|") = 0 Then lngHandleHwnd = w.Hwnd Call createControlWindow End If End If End If Next End Sub . . . Private Sub setTagPos() isClickHandle = True wTag.SetTop Not wTag.IsTopmost Set Image1.Picture = IIf(wTag.IsTopmost, imgAfter.Picture, imgBefore.Picture) If wTag.IsTopmost Then wTag.SetTop wTag.Focus wMe.SetTop End If wTag.Focus End Sub Private Sub Timer1_Timer() If Not wTag.CheckWindow Then '如果窗口不存在就关闭 Unload Me End If If wTag.IsForegroundWindow Then '如果当前是活动窗口,那么需要显示并移动控制窗口 lngLeft = (wTag.Left + wTag.Width) * 15 - Me.Width - 60 * 15 lngTop = wTag.Top * 15 + 60 If Me.Left <> lngLeft Or Me.Top <> lngTop Then '位置需要更新时再移动 Me.Move lngLeft, lngTop End If Me.Visible = True wMe.SetTop ElseIf Not wMe.IsForegroundWindow Then Me.Visible = False End If If wTag.IsTopmost <> isTop Then isTop = Not isTop Set Image1.Picture = IIf(isTop, imgAfter.Picture, imgBefore.Picture) End If End Sub ``` ![](https://img.kancloud.cn/9d/5e/9d5e83909ed743fa6e5a3a8b3a441ef4_324x130.png) 点击下变成置顶,并且图标发生变化: ![](https://img.kancloud.cn/ef/7b/ef7b265772c50584a3e88466d8856165_325x140.png) 如果要退出可以点击右下角托盘,选择菜单“退出” ![](https://img.kancloud.cn/4e/17/4e17b8b080beaa67a67c40037330c0e7_253x121.png) &nbsp; ## 软件及源码下载 **软件下载:** https://github.com/sysdzw/SetWindowTop/blob/master/SetWindowTop.exe **源码(github):** https://github.com/sysdzw/SetWindowTop