首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

在做DW里的image具有按下弹直的效果中出有关问题啦

2012-04-07 
在做DW里的image具有按下弹直的效果中出问题啦当我只在那个对象上按下而拖动鼠标在其它地方弹起时,那个ima

在做DW里的image具有按下弹直的效果中出问题啦
当我只在那个对象上按下而拖动鼠标在其它地方弹起时,那个image状态不会变回原来的状态?
我在对象的lostfoucus 写了事件可以当鼠标已离开了时,它的状态还是不变,直到点了其它的对象

[解决办法]
这个比较麻烦,需要在mouse里写代码控制

定义API:
FUNCTION ulong SetCapture(ulong hwnd) LIBRARY "user32.dll"
FUNCTION ulong ReleaseCapture() LIBRARY "user32.dll"
事例变量 ib_mousein = false

mousemove event:
if ib_mousein <>(xpos>0 and ypos>0 and xpos<width and ypos<height)then return
ib_mousein = not ib_mousein
if ib_mousein then
SetCapture( handle( this ) )
//这里写鼠标进入控件的
else
ReleaseCapture( )
//这里写鼠标离开的
end if

[解决办法]
不是lostfocus事件而是mousemove事件

在把我昨天给你的代码稍加修改即可

首先设定一局部变量 Stringis_focus_picture //当前获焦点的图片名

在u_down事件中
If dw_main.Modify(ls_object + ".Border='5'") = "" Then
is_focus_picture = ls_object//当鼠标左键按下时,设置当前获得焦点的图片名
End If

在mousmove中

Integerli_picture_sum, i, li_pos
Stringls_object

ls_object = Lower(dw_main.GetObjectAtPointer())
li_pos = Pos(ls_object, "~t")
if li_pos>0 then
ls_object = Left(ls_object, li_pos - 1)
if ls_object =is_focus_picture then
else
Modify(is_focus_picture + ".Border='6'")//设置图片弹起效果
end if
else
Modify(is_focus_picture + ".Border='6'")//设置图片弹起效果
end if

上面代码未经测试,请楼主自行完善一下

热点排行