一个关于api的问题,急...

whlx 2004-12-04 08:22:10
一个label,用菜单编辑器编一个菜单,当鼠标移到label上时,弹出菜单,鼠标移走,菜单消失,菜单字体大小和颜色要随之改变,请问如何实现?最好能给书示例代码
...全文
230 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
longki 2005-01-10
  • 打赏
  • 举报
回复

好像这样做会占用系统很多资源!
whlx 2005-01-10
  • 打赏
  • 举报
回复
谢谢大家,学到了不少!
熊孩子开学喽 2004-12-29
  • 打赏
  • 举报
回复
哎呀,没看到楼上 faib920(飞步) 同志的思路居然和我差不多,罪过罪过,
偶前面只是说偶自己的念头蠢,没有说你哦,别在意,那时真没看到你的帖子。
否则我就说我的点子是超级棒了!
熊孩子开学喽 2004-12-29
  • 打赏
  • 举报
回复
偶有个超级苯的办法,楼主不妨试试:
使用ReleaseCapture这个API,和一个TIMER控件,
在TIMER事件中每隔一段时间调用ReleaseCapture捕获鼠标的位置,再判断是否在LABEL控件内。

呵呵,这么蠢的念头,我自己都不好意思试了(应该是行的,但是那个效率,呵呵)
楼主权当是听个笑话吧。
TalentAyee 2004-12-28
  • 打赏
  • 举报
回复
楼主的想法很有趣,关注!
tztz520 2004-12-12
  • 打赏
  • 举报
回复
如果让我做的话就用textbox控件代替label来显示(因为textbox有hwnd),菜单就用一个窗口来代替,这样就可以实现楼主的要求.
creazyfish 2004-12-12
  • 打赏
  • 举报
回复
你能不能用隐藏的标签实现啊?
faib920 2004-12-12
  • 打赏
  • 举报
回复
加一个timer控件,鼠标移进进其enabled=true,然后用getcursorpos函数判断是否在label内,不在的话菜单消失
dongge2000 2004-12-12
  • 打赏
  • 举报
回复
有100分就顶下。
莫情莫钱 2004-12-12
  • 打赏
  • 举报
回复
不错的想法哦,挺有趣的
vivan19781111 2004-12-11
  • 打赏
  • 举报
回复
这个不用api吧
铁拳 2004-12-04
  • 打赏
  • 举报
回复
看看这里面有没有你想要的。
ftp://ftp.frontfree.net/Pub/Resource/VB/菜单处理001.rar

你的要求我还真见到过,不过是 Coolbar 的例子,不太好找到了。
aohan 2004-12-04
  • 打赏
  • 举报
回复
up
whlx 2004-12-04
  • 打赏
  • 举报
回复
没写详细,楼上的那位见笑了
不过还好,有人懂我的意思,呵呵~~~
这么难啊,怪不得我搞了好几天还没搞出来,哎...
happy_sea 2004-12-04
  • 打赏
  • 举报
回复
真的相当麻烦,原以为这样就可以:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnuPopup.Visible = False
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.PopupMenu mnuPopup
End Sub

一试验才知道,弹出菜单后根本不再响应窗体的mouse_move事件,除非你选择或取消了菜单操作。。。
wfhlxl 2004-12-04
  • 打赏
  • 举报
回复
in label's mousemove event uses win32 api ptinrect(rect,point) decide the menu will be popuped if can you use popupmenu yourmenu
cso 2004-12-04
  • 打赏
  • 举报
回复
当鼠标移到label上时,弹出菜单,这个功能很简单,直接在mousemove里写就行,至于鼠标移走,菜单消失这个功能实现起来相当麻烦,我曾经做过,并且参考过微软的相关技术文章,用label实现“鼠标移走,菜单消失”更是难上加难,因为要实现这个操作必须调用Hook(钩子),而调用Hook必须要用句柄跟踪,label是没有句柄的

在弹出菜单的操作前,调用hook跟踪鼠标,因为一旦弹出菜单,窗体事件就会暂停(已经进入菜单消息循环中),用子类(Subclass)的方法都无法检测到鼠标移动的消息,所以只能用hook跟踪鼠标,一旦鼠标移到另一个label中,脱钩Unhook,发送一条消息取消菜单(也可以发送Esc按键消息来取消菜单),然后再弹出下一个菜单

很麻烦吧?!!!呵呵
daisy8675 2004-12-04
  • 打赏
  • 举报
回复
我为你的要求感觉到有趣


,当鼠标移到label上时,弹出菜单
/。/。是右键菜单还是其他,你这个要求实在有点好笑

1,486

社区成员

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

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