诡异!! 已最小化的窗口如何激活到最前台?

时间:2021-10-12 18:59:45

诡异!!  已最小化的窗口如何激活到最前台?

没有最小化就很容易激活到前台,最小化了我使用一下代码都无法激活到前台, 求大神指导啊!!

                  SetWindowPos Nhwnd, HWND_TOP, 20, 20, 400, 400, SWP_SHOWWINDOW ' Or SWP_NOMOVE Or SWP_NOSIZE

                  ShowWindow Nhwnd, SW_SHOW
                  SetForegroundWindow Nhwnd
                  SetActiveWindow Nhwnd
                  SetFocus Nhwnd
                  
究竟是什么原因呢~看到工具栏的窗口图标有点到的样子 但是都没有去到前台!!  求大神指导啊!!
                  

11 个解决方案

#1


showwindow hwnd,SW_RESTORE

#2


用spy++看看窗口存在不。

#3


Public Function ActivateWnd(aWnd As Long)
    If aWnd <> 0 Then
        If IsWindowVisible(aWnd) = 0 Then ShowWindow aWnd, 5
        If IsIconic(aWnd) Then ShowWindow aWnd, 9
        BringWindowToTop aWnd
    End If
End Function

#4


楼上常数参数喜欢写成数字啊

#5


引用 4 楼 bcrun 的回复:
楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。

#6


引用 5 楼 Carlven2012 的回复:
Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.

#7


引用 6 楼 WallesCai 的回复:
Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。

#8


引用 7 楼 Carlven2012 的回复:
Quote: 引用 6 楼 WallesCai 的回复:

Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。


不用客气, 当年也是这么一路碰壁过来的, 一件件都是血的教训啊

#9


引用 2 楼 caozhy 的回复:
用spy++看看窗口存在不。


版主想的好深啊 ^^

#10


引用 3 楼 Carlven2012 的回复:
Public Function ActivateWnd(aWnd As Long)
    If aWnd <> 0 Then
        If IsWindowVisible(aWnd) = 0 Then ShowWindow aWnd, 5
        If IsIconic(aWnd) Then ShowWindow aWnd, 9
        BringWindowToTop aWnd
    End If
End Function


正解啊 !! 非常感谢!! 

#11


引用 8 楼 WallesCai 的回复:
Quote: 引用 7 楼 Carlven2012 的回复:

Quote: 引用 6 楼 WallesCai 的回复:

Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。


不用客气, 当年也是这么一路碰壁过来的, 一件件都是血的教训啊


好心人 ^^

#1


showwindow hwnd,SW_RESTORE

#2


用spy++看看窗口存在不。

#3


Public Function ActivateWnd(aWnd As Long)
    If aWnd <> 0 Then
        If IsWindowVisible(aWnd) = 0 Then ShowWindow aWnd, 5
        If IsIconic(aWnd) Then ShowWindow aWnd, 9
        BringWindowToTop aWnd
    End If
End Function

#4


楼上常数参数喜欢写成数字啊

#5


引用 4 楼 bcrun 的回复:
楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。

#6


引用 5 楼 Carlven2012 的回复:
Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.

#7


引用 6 楼 WallesCai 的回复:
Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。

#8


引用 7 楼 Carlven2012 的回复:
Quote: 引用 6 楼 WallesCai 的回复:

Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。


不用客气, 当年也是这么一路碰壁过来的, 一件件都是血的教训啊

#9


引用 2 楼 caozhy 的回复:
用spy++看看窗口存在不。


版主想的好深啊 ^^

#10


引用 3 楼 Carlven2012 的回复:
Public Function ActivateWnd(aWnd As Long)
    If aWnd <> 0 Then
        If IsWindowVisible(aWnd) = 0 Then ShowWindow aWnd, 5
        If IsIconic(aWnd) Then ShowWindow aWnd, 9
        BringWindowToTop aWnd
    End If
End Function


正解啊 !! 非常感谢!! 

#11


引用 8 楼 WallesCai 的回复:
Quote: 引用 7 楼 Carlven2012 的回复:

Quote: 引用 6 楼 WallesCai 的回复:

Quote: 引用 5 楼 Carlven2012 的回复:

Quote: 引用 4 楼 bcrun 的回复:

楼上常数参数喜欢写成数字啊


呵呵,是的,这样容易记住。还省去了定义。


魔法数唉, 最好还是定义一下常量, 你改个便于自己记忆的名字也行啊. 
好处在于:
1: 便于阅读和维护
2: 一旦程序中有多个地方引用这个数字的时候, 你只要修改定义, 就能全局修改, 而不必一个一个抓过来, 漏了一个就会有问题.
3: 多个相同值的魔法数不会串门, 很多不同的API有各自的一套参数, 可能有相同的数值, 但是代表了不同的含意, 同样是当你的程序中有多出引用这些API的时候, 万一你只想改其中一个api的参数, ......你想想多麻烦吧.


谢谢兄长耐心的解释,看来定义常量还有这么多好处,受教了,嘿嘿。


不用客气, 当年也是这么一路碰壁过来的, 一件件都是血的教训啊


好心人 ^^