clswindow使用案例:窗口图钉-窗口置顶(含源码)

简介: clswindow使用案例:窗口图钉-窗口置顶(含源码)

说明:


本案例基于clswindow开发的一个小软件,功能是方便的对目标窗口设置置顶还是取消置顶。软件启动后会在每个窗口的标题栏右端加一个置顶功能的小控制块。通常情况下点击它会使得对应的窗口置顶,如果要取消置顶可以再次点击一下。

测试环境:win7x64


提示: 在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


image.png

点击下变成置顶,并且图标发生变化:

image.png

如果要退出可以点击右下角托盘,选择菜单“退出”

image.png

软件及源码下载


软件下载:github.com/sysdzw/SetW…

源码(github):github.com/sysdzw/SetW…

目录
相关文章
|
3月前
|
C++ Windows
Qt 窗口置顶
Qt 窗口置顶
110 1
|
3月前
Axure 列表左右滑动交互-删除、置顶
Axure 列表左右滑动交互-删除、置顶
212 0
|
6月前
|
Shell 开发工具 git
聊天功能演示系统发布后出现有些页面滚动与鼠标点击问题解决
聊天功能演示系统发布后出现有些页面滚动与鼠标点击问题解决
43 0
|
6月前
QT取消标题栏,如何实现窗口移动
QT取消标题栏,如何实现窗口移动
排错实战——你知道拖动窗口时只显示虚框怎么设置吗?
你知道拖动窗口时只显示虚框怎么设置吗?
|
Python
飞机大战-创建窗口(1)
用Python编程,编写飞机大战-创建窗口。
58 0
|
JSON 小程序 JavaScript
小程序地图插入图标后 怎么实现点击图标弹出窗口
小程序地图插入图标后 怎么实现点击图标弹出窗口
103 0
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法