怎樣檢測mouse的進入與離開!

kirao 2004-04-19 09:04:29

實現功能:
在window上放一text控件,當mouse進入時我要觸發事件其改變顏色,離開時
恢復原來顏色,pb中沒有此類事件,請問自定義事件怎麼做,還是否有它好辦法。
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kirao 2004-04-21
  • 打赏
  • 举报
回复
謝謝 lzheng2001 !

lzheng2001 2004-04-19
  • 打赏
  • 举报
回复
给你一个实用的例子吧,
1.定义API:
function ulong SetCapture(ulong hwnd) library "user32.dll"
2.在MOUSEMOVE事件中:
SetCapture(handle(this))
IF ((XPos<0 or YPos<0) or (XPos>=this.Width or YPos>this.Height)) THEN
//MOUSE离开了
ReleaseCapture()
...
else
//MOUSE在TEXT上面
...
end if

问题解决,放分吧:p
kirao 2004-04-19
  • 打赏
  • 举报
回复

歡迎論壇的朋友來參預討論此問題,謝謝!!





kirao 2004-04-19
  • 打赏
  • 举报
回复
謝謝你的方法,(我已按你方法try了)但我這裡還是有一個問題,如果在text邊上有一其它控件時,當mouse移以它上時window 的mousemove就沒有觸發,所以顏色也就改變不了,另外我改變text的color只是
當mouse離開時改變,如果寫在window mouse 事件上時,只要mouse在window上面move時,text一老在改變顏色,所以覺得不是很好,如果有mouseleave之類事件就好,像java裡一樣。
lzheng2001 2004-04-19
  • 打赏
  • 举报
回复
1.在text控件上加一自定义事件ue_mousemove,pbm_mousemove
在里面写代码改变其颜色,st_1.backcolor = ...

2.在WINDOW的MOUSEMOVE事件中写代码使其变回原色:
st_1.backcolor = ...

我就是这样做的,如果TEXT在TAB控件上,则还原的代码写在TAB的MOUSEMOVE事件上. ok!

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧