像QQ同样收起打开的rollout简洁版

模仿QQ面版自动隐藏和显示。此处只有顶部隐藏(左右隐藏同理可加)。移动面版到顶边时自动收起,鼠标通过时自动放下,鼠标离开面版后会再次收起(拖动到屏幕中间时不会收起)。
固然,这个收起放下并不没有移动的过程,只是窗口位置的即时变化。必定要美化这个功能也能够用timer来控制y的变化。
这里窗口大小均可以设成变量来调用。 ide

 

---OO2011
try destroydialog oo catch()
rollout OO "OO2011"
( spa

timer hidew "" interval:400 active:true -- 反映时间可在此调节 get

---- 窗口动做
on oo moved pos do
(
if ((getdialogpos oo)[2] < 1 ) then setdialogpos oo [(getdialogpos oo)[1],-504]  ---当窗口拖动到顶边时隐藏界面。(也就是面版的Y轴到顶边时就设定Y轴位置为隐藏窗口的高度,为何是-504而不是-600由于面版边框和要留出的多少有关。)
) 变量

on hidew tick do if (getdialogpos oo)[2] < 0 then  ---若是面版Y轴<0 (判断面版处于隐藏状态) im

(
if ( mouse.screenpos[1] as integer >= (getdialogpos oo)[1] and mouse.screenpos[1] as integer <= ((getdialogpos oo)[1] + 240 ) and mouse.screenpos[2] as integer <= 1 )   --当鼠标通过隐藏界面留出部份时。。。
then setdialogpos oo [(getdialogpos oo)[1],1]  --面版位置显示 移动

) else  ---若是面版为显示状态则。。。 di

(
if (getdialogpos oo)[2] == 1 do  --判断面版正处在隐藏后唤出的状态。。(Y轴为1时,也就是说若是面版被拖到屏幕中不靠顶的话下面的动做无效)
( 时间

if ( mouse.screenpos[1] as integer <= (getdialogpos oo)[1] or mouse.screenpos[1] as integer >= ((getdialogpos oo)[1] + 240 ) or mouse.screenpos[2] as integer >= 510 )  --若是鼠标超出面版范围后。。。
then setdialogpos oo [(getdialogpos oo)[1],-504]  --面版又隐藏起来 time

)
)
)
createdialog oo 240 480 界面

相关文章
相关标签/搜索