这不就是焦点问题吗?
给一个定时器给mouse,让它定时接收所处位置的信息
判断是否有窗体控件
若有
读取控件类型
再大喊,“你这个东东,这领空可不是你的!”
没有呢
当然放心去滚,还可以放松心情去爬树!行吗?给我分吧!
^_^
这也是你的想法,我也想不出有更好的办法了

解决方案 »

  1.   

    55555,什么缘故?只能给到39分?Sorry
    不过你可到“同样的问题"说句话,我将那30分也给你
      

  2.   

    csdn的专家们,来一个就好了
    好好听听前辈的意见
      

  3.   

    如果是领空的话,焦点还是不能解决问题啊,还得需要TIMER侦测,把时间调短些吧!
      

  4.   

    VB 里面是不是有个 OnMouseEnter?
    1、有?那最简单,直接响应就行了。
    2、没有?那是我记混了。可以用 GetCapture() ReleaseCapture() 自己实现 OnMouseEnter,不过有点麻烦。要是有很多控件,还是换个方法。
    3、让每个控件对 OnMouseMove 响应,响应函数仅仅是把这一消息通知给主窗口,并带上自己的信息。不知还有没有更简单的方法,我对 VB 仅仅知道皮毛。
      

  5.   

    所有控件设定disable,一切又form接收,然后form找到被点击的控件再设定为enable.
      

  6.   

    4、对了,dragonleon 的方法也可以呀,不过这个定时器是给主窗口:
        OnTimer
            GetMousePosition
            转换成客户坐标
            计算出在那个控件子窗口上
            取得该子窗口的窗口类
            根据该窗口类判断是什么类型的
        End
      

  7.   

    刚注意到 Windows 有一个 WM_MOUSEHOVER 消息,我没用过,好像可以。
      

  8.   

    ab(ab)说的MOUSEHOVER好象有些用处,就象模拟FLASH做出的按钮一样,FLASH能做出来,一定有办法的!
      

  9.   

    如果控件多,又要即时反应,真的好麻烦
    不知控件的ToolTipText怎么做出来的
    mouse一到它就反应了
    知道它的原理一切都OK
    各位说是不是?
      

  10.   

    你们知道控件的ToolTipText属性怎么做出来的吗?
      

  11.   

    我看了看 WM_MOUSEHOVER 的说明,好像就是为 ToolTipText 服务的。
      

  12.   

    O,谢谢诸位
    大家都试试吧
    弄明白做个DLL可是很有用的。
      

  13.   

    WM_MOUSEHOVER VB里有?好象VC的吧
      

  14.   

    做这个DLL的人一定是个农夫,哈哈……
      

  15.   

    delphi做这个应该有办法
    做好了用到VB可能行吧
      

  16.   

    WM_MOUSEHOVER 不是 VC 的,是 Windows 的。
    嘿嘿嘿...
      

  17.   

       各位想一想。1、TOOLTIPTEXT是有数量限制的,起码加入一个按钮,TIPTEXT就应该存在一个数组里,可是水如烟“大姐”的要求是不限数量的控件。2、在WINDOWS这种事件触发机制的系统里,无论用什么函数,都需要一个事件来触发,象TIMER也好,GotFocus都是一个触发条件。
        所以我认为这个问题最好,也是最笨的方法还是回到老路上去,每个控件都必须有GotFocus事件,不然实在是很难解决。
        水如烟“大姐”你赶紧把你的思路贴出来,看看是不是只有这样象你所说的方法一种解决方法。
      

  18.   

        如果这个问题解决了,我下次将提以下两个简单的,
    先供你们参考,好拿分:
        一、听说VB6想淘汰Data,推崇Adodc,可是,Data的功能Adoc真的全部具备吗?
        二、对数据库,为什么要ADO和DAO一起上,就用其一能否实现全部所需?
      

  19.   

    dragonleon(dragonleon),要用Gotfous,不行,太烦
    如果不计较系统开销,可这样简单想
    1、来一个Timer,一个时间间隔调用一个Function
    2、Functon
       记下mouse位置;
       调用Screen.ActiveContrl属性;
       让mouse在指定的Form空白处click一下,得到Controll
       判断Controll
       恢复mouse原位置
       End Function
    上面想法是的基础是控件先得到焦点,
    要是老鼠只在控件上空,就没辙了。
      

  20.   

    是啊,我所说的就是很难触发获得焦点啊。
    领空的问题开始不是说过了吗,再加一个TIMER,不过领空解决,获得焦点就顺带解决了。
       OnTimer
            GetMousePosition
            转换成客户坐标
            计算出在那个控件子窗口上
            取得该子窗口的窗口类
            根据该窗口类判断是什么类型的
        End 
    你说加TIMER还是慢啊。
      

  21.   

    是啊,我所说的就是很难触发获得焦点啊。
    领空的问题开始不是说过了吗,再加一个TIMER,不过领空解决,获得焦点就顺带解决了。
       OnTimer
            GetMousePosition
            转换成客户坐标
            计算出在那个控件子窗口上
            取得该子窗口的窗口类
            根据该窗口类判断是什么类型的
        End 
    你说加TIMER还是慢啊。
      

  22.   

    见笑了,我连OnTimer还没用过,
    因此不知有比Timer更好的办法。
    谢谢。
      

  23.   

    我做的程序也是要这样做的啊,COMBO列出数据库的内容后让用户自己去选啊,何必这么麻烦?
      

  24.   

    你的方法用到了API,
    我的那个笨法倒是不用。
    不过我没试过,应该行的,
    我就看看有没有更好的办法。
    API,用哪个Fun,Sub?