关于IE中收藏菜单的一个问题,高分请教

csdn_tw 2006-03-27 09:57:31
在IE的收藏菜单中,如果菜单项很多,超过屏幕高度的时候,在菜单两端会出现滚动箭头,当鼠标移到箭头上时,菜单会自动滚动.当菜单滚动到最末一行时,保持鼠标不动,按"下"方向键,使菜单重新回到第一行,这时,鼠标仍保持在菜单最末一行位置,而且滚动按钮也重新出现在鼠标下方.但这时菜单不会自动滚动, 除非重新动一下鼠标.即用键盘上的方向键移动在菜单上上下移动时,鼠标好像暂时失效,而一旦碰一下鼠标,鼠标又重新接管了菜单控制.我对这个比较纳闷,究竟是怎么实现的?
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_tw 2006-03-27
  • 打赏
  • 举报
回复
我是通过spy查看菜单窗体,发现收藏菜单是由windows的common control系列中的ToolBarWindows32和Page Control两个控件构成的,对应到VCL中就是TToolBar和TPageScroller两个控件,我用这两个控件想模拟一下这菜单,已经分别实现了鼠标控制和键盘方向键控制,但是在用方向键控制时,如果鼠标仍停留在菜单末端(或顶端),即原先有箭头按钮的地方,用方向键继续移动,这时选定的菜单项会移到菜单顶部(或底部),但问题出现了,由于鼠标仍在原先箭头按钮的位置,TPageScroller会自动滚动,而IE中的菜单则会保持不动,除非你用手在碰一下鼠标.
cuteant 2006-03-27
  • 打赏
  • 举报
回复
可以在滚动到头以后关闭,然后在OnMouseMove里面触发滚动

828

社区成员

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

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