[已解决]【这个很难吗?】怎样控制重合的两个控件的显示
本帖最后由 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
请各位指点一下 没回答!! 本帖最后由 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
$y=$m
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
回复 4# C.L
兄弟。。要两个都可见。。。 怎么,,有难度吗。。没有多少人回答 所谓的上面和下面有什么区别?“可通过程序 根据需要”究竟是怎样的一种过程?
楼主先把这些数清楚吧。说清楚了,相信这根本不算什么问题。 楼主压根没把问题说清楚。。。上面下面是要实现怎样一个效果?看到而不能用? 晕。。怎么都说没有表述清楚。改下 还没人来。。自己顶上去 帮忙顶上去...... 本帖最后由 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 本帖最后由 doshowyam 于 2010-4-23 22:38 编辑
回复 12# shqf
谢谢。。。:face (32):
对啊。。就是这个意思。。但是滚动条显示还是有点问题的啊
再试用一List 框换掉其中一个eidt 看看还能不能控制啊 好人呢。。。。救命啊 本帖最后由 lainline 于 2010-4-24 15:04 编辑
:face (36): 等
页:
[1]