在程序中,我用API调用鼠标的双键,可以解决当鼠标某键按下时发生的事件。但是如何以下的例子:有项目1,2。鼠标移动到1区域时,按下鼠标左键发生1的事件,鼠标移动到2区域时,按下鼠标左键发生2的事件。怎么让项目1,2发现鼠标进入它的区域内了,并做出反应了。求教各位大人了!

解决方案 »

  1.   

    接上面的问题,程序本身不支持鼠标,不然就用不着API了,但是可以键控,也就是说项目1,2可以通过键盘选择,但是鼠标是没有“UP”和“DOWN”键,本来想调用“滚轮”键解决的,但是不知道怎么办,感觉效果也不会很好!但是会简单些
      

  2.   

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ’Button可以判断左右键        
    ’X和Y可以判断区域
    End Sub为什么要搞得那么复杂呢?
      

  3.   

    大哥,不是VB~~~API有这个函数可以用吗?
      

  4.   

    Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As LongPublic Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As LongPublic Type POINTAPI
            x As Long
            y As Long
    End Type不过要转换一下,比较麻烦
      

  5.   

    BOOL GetCursorPos(
      LPPOINT lpPoint   // address of structure for cursor position
    );BOOL ScreenToClient(
      HWND hWnd,        // window handle for source coordinates
      LPPOINT lpPoint   // address of structure containing coordinates
    );
      

  6.   

    谢谢了~~你说的很对要得到鼠标在屏幕上的X,Y坐标,再和“项目”的X,Y坐标进行比较。再问一个问题好吗?怎样求鼠标位置和物体位置的连线正切值,谢谢了? 
      

  7.   

    Xo, Yo对象坐标
    Xm, Ym鼠标坐标正切值(Yo-Ym)/(Xm-Xo)