找回密码
 加入
搜索
查看: 4948|回复: 14

[GUI管理] [已解决]【这个很难吗?】怎样控制重合的两个控件的显示

  [复制链接]
发表于 2010-4-22 12:28:56 | 显示全部楼层 |阅读模式
本帖最后由 doshowyam 于 2010-4-26 23:33 编辑

我要通过程序控制两个重叠控件的上下关系,要两个控件都可见。。
在鼠标停在重叠部分时可通过程序根据需要来决定哪个在上面显示

效果就像一个控件压在另一个控件上。没有重叠部分两个控件都可见,对于重叠部分由压在上面的控件显示。
就像交错放在一起的两张纸一样,放在上面的一张全部可见,而下面的一张由于上面纸的遮盖的关系只能看到重叠以外的部分。再在程序就要根据情况选择把哪一张纸放在上面。

最终实现点击接入IP显示下打的LIST 控件。。双击项目显示入IP框。其它情况下不显示示下打的控件








还有不明白的吗?

怎么,,有难度吗。。没有多少人回答???
$form1 = GUICreate("",300,200)
$edit1 = GUICtrlCreateEdit("edit1",100,10,100,180)

$edit2 = GUICtrlCreateEdit("edit2",10,50,180,100)

GUISetState()

While 1
        $msg = GUIGetMsg()
        If $msg = -3 Then Exit
WEnd

本帖子中包含更多资源

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

×
 楼主| 发表于 2010-4-22 12:31:34 | 显示全部楼层
请各位指点一下
 楼主| 发表于 2010-4-22 13:21:10 | 显示全部楼层
没回答!!
发表于 2010-4-22 15:59:35 | 显示全部楼层
本帖最后由 C.L 于 2010-4-22 16:00 编辑

体力活!~
#include <GUIConstants.au3>

$form1 = GUICreate("test",300,200)
$edit1 = GUICtrlCreateEdit("edit1",100,10,100,180)
;~ GUICtrlSetState (-1,$GUI_HIDE)
$edit2 = GUICtrlCreateEdit("edit2",10,50,180,100)

GUISetState()

$ctrlshow = 1 ;公共区域默认显示$edit2

While 1
                $m=GUIGetCursorInfo($form1)
                $x=$m[0]
                $y=$m[1]
                If (($x>100 And $x<200) And ($y>10 And $y<50)) Or (($x>100 And $x<200) And ($y>150 And $y<190)) Then 
                        GUICtrlSetState ($edit2,$GUI_HIDE)
                        GUICtrlSetState ($edit1,$GUI_show)
                EndIf
                If (($x>10 And $x<100) And ($y>50 And $y<150)) Then 
                        GUICtrlSetState ($edit1,$GUI_HIDE)
                        GUICtrlSetState ($edit2,$GUI_show)
                EndIf
                If (($x>100 And $x<200) And ($y>50 And $y<150)) Then 
                        If $ctrlshow = 1 Then                                 
                                 GUICtrlSetState ($edit1,$GUI_HIDE)
                                GUICtrlSetState ($edit2,$GUI_show)
                        Else 
                                GUICtrlSetState ($edit2,$GUI_HIDE)
                                GUICtrlSetState ($edit1,$GUI_show)
                        EndIf
                EndIf
        $msg = GUIGetMsg()
        If $msg = -3 Then Exit
                Sleep (30)
WEnd
 楼主| 发表于 2010-4-22 19:01:14 | 显示全部楼层
回复 4# C.L


    兄弟。。要两个都可见。。。
 楼主| 发表于 2010-4-22 19:04:08 | 显示全部楼层
怎么,,有难度吗。。没有多少人回答
发表于 2010-4-22 19:44:59 | 显示全部楼层
所谓的上面和下面有什么区别?“可通过程序 根据需要”究竟是怎样的一种过程?
楼主先把这些数清楚吧。说清楚了,相信这根本不算什么问题。
发表于 2010-4-22 23:25:26 | 显示全部楼层
楼主压根没把问题说清楚。。。上面下面是要实现怎样一个效果?看到而不能用?
 楼主| 发表于 2010-4-22 23:56:31 | 显示全部楼层
晕。。怎么都说没有表述清楚。改下
 楼主| 发表于 2010-4-23 12:23:52 | 显示全部楼层
还没人来。。自己顶上去
发表于 2010-4-23 12:50:57 | 显示全部楼层
帮忙顶上去......
发表于 2010-4-23 22:13:52 | 显示全部楼层
本帖最后由 shqf 于 2010-4-23 22:17 编辑

楼主大概是不是这个意思:
#include <GUIConstantsEx.au3>
$form1 = GUICreate("", 300, 200)

$edit1 = GUICtrlCreateEdit("edit1", 50, 10, 100, 180)
GUICtrlSetData(-1, "1111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111" & _
                @CRLF & "111111111111111111" & @CRLF & "111111111111111111")
$edit2 = GUICtrlCreateEdit("edit2", 10, 50, 180, 100)
GUICtrlSetData(-1, "22222222222222222222222222222" & @CRLF & _
                "22222222222222222222222222222" & @CRLF & _
                "22222222222222222222222222222" & @CRLF & _
                "22222222222222222222222222222" & @CRLF & _
                "22222222222222222222222222222")

$Radio1 = GUICtrlCreateRadio("$edit1在上", 214, 48, 80, 25)
$Radio2 = GUICtrlCreateRadio("$edit2在上", 214, 80, 80, 25)
GUICtrlSetState(-1,$GUI_CHECKED)
GUICtrlSetState($edit1, $GUI_DISABLE)
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Radio1
                        GUICtrlSetState($edit2, $GUI_DISABLE)
                        GUICtrlSetState($edit1, $GUI_ENABLE)
                        GUICtrlSetState($edit1, $GUI_FOCUS)
                Case $Radio2
                        GUICtrlSetState($edit2, $GUI_FOCUS)
                        GUICtrlSetState($edit1, $GUI_DISABLE)
                        GUICtrlSetState($edit2, $GUI_ENABLE)
        EndSwitch
WEnd
 楼主| 发表于 2010-4-23 22:37:20 | 显示全部楼层
本帖最后由 doshowyam 于 2010-4-23 22:38 编辑

回复 12# shqf

谢谢。。。

对啊。。就是这个意思。。但是滚动条显示还是有点问题的啊

再试用一List 框换掉其中一个eidt 看看还能不能控制啊
 楼主| 发表于 2010-4-24 11:24:58 | 显示全部楼层
好人呢。。。。救命啊
发表于 2010-4-24 14:54:15 | 显示全部楼层
本帖最后由 lainline 于 2010-4-24 15:04 编辑

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-11 09:22 , Processed in 0.088191 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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