axiang 发表于 2009-3-22 12:01:59

如何使一个指定的窗口永远在最下层?

这个为题的情景是这样的,先建立了一个背景界面(全屏),然后通过 RunWait 运行 Ghost ,此时如果使用鼠标点击背景界面,Ghost 的窗口就会被背景窗口覆盖,如何设置这个背景窗口,使其永远在新窗口的下面?

好像AU3没有设置窗口在最下层的命令?

谢谢。

xrbenbeba 发表于 2009-3-22 12:06:26

AU3没有 但是API可以 自己搜索一下吧 有一个窗口一直在最上层的帖子

再去MSDN上看看相关的函数解释 自己就能搞定了
就是这个api函数SetWindowPos

[ 本帖最后由 xrbenbeba 于 2009-3-22 12:08 编辑 ]

ceoguang 发表于 2009-3-22 16:45:56


Func _SetParent($TitleP, $TitleC)
    If WinExists($TitleP) Then
      If WinExists($TitleC) Then
            $HwndP = WinGetHandle($TitleP)
            $HwndC = WinGetHandle($TitleC)
                        DllCall("user32.dll", "str", "SetParent", "HWnd", $HwndP, "HWnd", $HwndC)
            Return 1
      Else
            Return -1
      EndIf
    Else
      Return -1
    EndIf
EndFunc

使用方法

_SetParent(你的句柄, "Program Manager")

axiang 发表于 2009-3-22 17:20:34

谢谢楼上的两位,自己在消化学习下。

pusofalse 发表于 2009-3-22 18:50:31

回复 3# ceoguang 的帖子

SetParent这个函数的返回值是hwnd类型吧,不过改为别的貌似也无大碍~
也不必加If WinExists()判断,因为SetParent自己会判断吧~?

[ 本帖最后由 pusofalse 于 2009-3-22 18:53 编辑 ]

sxd 发表于 2009-3-23 08:21:57

嗯 原理就是把桌面设置成程序的父窗口

jdwyd 发表于 2009-11-25 19:30:43

那要如何还原成原来的样子呢
页: [1]
查看完整版本: 如何使一个指定的窗口永远在最下层?