找回密码
 加入
搜索
查看: 2309|回复: 11

[AU3基础] 如何让子窗口不被父窗口的控件覆盖住??

  [复制链接]
发表于 2016-5-8 16:30:42 | 显示全部楼层 |阅读模式
如何让子窗口不被父窗口的控件覆盖住??

如下 程序

建立了一个 有颜色的子窗口
希望  不要看到 ﹝能看到我吗??﹞那个按钮

希望子窗口 永远在哪个按钮的上面
能做得到吗???
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#Include <Constants.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$main_GUI = GUICreate("Tab Sample", 400, 320, -1, -1,$WS_MAXIMIZEBOX+ $WS_MINIMIZEBOX+ $WS_SIZEBOX+$WS_CLIPCHILDREN);, BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS))

$button4 = GUICtrlCreateButton("可以看到我嗎??", 150, 100, 120, 20)
$button1 = GUICtrlCreateButton("顯示", 10, 270, 70, 20)
$button2 = GUICtrlCreateButton("隱藏", 100, 270, 70, 20)

GUISetState()

$child1= GUICreate("child1",  370, 215, 15, 40,BitOr($WS_CHILD,$WS_CLIPSIBLINGS) ,-1, $main_GUI);
GUISetBkColor(0x257788); just for dimensing the child
_WinAPI_SetWindowPos($child1, -1, 0, 0, 0, 0, 3)
GUISetState()

While 1
    
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $button1
                        GUISetState(@SW_SHOW, $child1)
                        
        Case $button2
                        GUISetState(@SW_HIDE, $child1)
                        

                        
    EndSwitch


WEnd
发表于 2016-5-8 18:37:50 | 显示全部楼层
回复 1# kk_lee69

可以遮住,改一下子窗口的.....
发表于 2016-5-9 12:09:49 | 显示全部楼层
回复 1# kk_lee69
不是这种效果?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-5-9 13:27:16 | 显示全部楼层
是 但是 不可用 $WS_EX_MDICHILD  風格  因為  $WS_EX_MDICHILD 並沒有真的內嵌到 父窗口  會被其他的  程序 擋住
 楼主| 发表于 2016-5-9 13:50:34 | 显示全部楼层
回复 3# chzj589

你說的是 下面的寫法
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#Include <Constants.au3>
#include <WindowsConstants.au3>
#Include <WinAPI.au3>
 
$main_GUI = GUICreate("Tab Sample", 800, 600, -1, -1,$WS_MAXIMIZEBOX+ $WS_MINIMIZEBOX+ $WS_SIZEBOX+$WS_CLIPCHILDREN);, BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS))
 
$button4 = GUICtrlCreateButton("可以看到我嗎??", 150, 100, 120, 20)
$button1 = GUICtrlCreateButton("顯示", 10, 270, 70, 20)
$button2 = GUICtrlCreateButton("隱藏", 100, 270, 70, 20)
 
GUISetState()
 
$child1=  GUICreate("child1",  500, 500, 15, 40,0x80000000, 0x00000040 + 0x00000010, $main_GUI);
GUISetBkColor(0x257788); just for dimensing the child
_WinAPI_SetWindowPos($child1, -1, 0, 0, 0, 0, 3)
GUISetState()
 
While 1
    
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $button1
                        GUISetState(@SW_SHOW, $child1)
                        
        Case $button2
                        GUISetState(@SW_HIDE, $child1)
                        
 
                        
    EndSwitch
 
 
WEnd


但是 你看 下面的圖片  是會被其他東西 把 綠色 跟 主表單 分開的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-5-9 14:18:52 | 显示全部楼层
回复 5# kk_lee69

不会啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-5-9 14:21:09 | 显示全部楼层
因為小吧  你可以用我的第二個語法測試嗎
发表于 2016-5-9 14:33:37 | 显示全部楼层
回复 7# kk_lee69

再试试看,子窗口是800*600

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-5-9 14:39:08 | 显示全部楼层
回复 8# chzj589

正常~~ 莫非WINDOWS 簡繁的問題??  能把 程式碼直接給我  我編譯看看嗎??
发表于 2016-5-9 14:46:59 | 显示全部楼层
回复 9# kk_lee69

5楼的代码,把18行的:

_WinAPI_SetWindowPos($child1, -1, 0, 0, 0, 0, 3)
删掉

子窗口不能与主窗口放大与缩小,这个没办法解决。
 楼主| 发表于 2016-5-9 14:49:51 | 显示全部楼层
恩 果然是那個原因
发表于 2016-5-9 15:24:33 | 显示全部楼层
回复 11# kk_lee69


    前段时间我也在了解这个问题,可以用TAB 页面来解决。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 00:50 , Processed in 0.082829 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表