热情软件屋

 

要用鼠标点一下才能响应SetCapture


编号:QA000512
建立日期: 1999年2月12日 最后修改日期:1999年2月12日
所属类别:

DD:
    VB5
    PW98
    我声明了SETCAPTURE等两个函数,再用以下语句捕捉FORM1的MOUSE EXIT事件:
     Private Sub form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim MouseEnter As Boolean '鼠标进入的标志位
     MouseEnter = (0 <= X) And (X <= form1.Width) And (0 <= Y) And (Y <= form1.Height) '计算鼠标的移动是否在Command1里面
     If MouseEnter Then '鼠标已经进入
     Me.Caption = "Mouse In Button!"
     SetCapture form1.hWnd
     Else '鼠标已经离开
     Me.Caption = "Mouse Out!"
     ReleaseCapture
     End If
     End Sub
    但每当鼠标移进FORM的用户区域,再移去其他地方(其他FORM),程序总会停止响应,要用鼠标点一下才行,不知是为什么?

回答:

    确实存在你说的问题,我估计这是Win32 API设计的特点,这同Windows 3.x不同。我在回答QA000039 "通过指点操作获得窗口句柄"时就注意到了。而且我发现许多软件都要求用户按下左键采用拖放的方式的来选择窗口,可能就是因为这个原因。如果要想不按鼠标键,可能需要用SetWindowsHookEx扑捉鼠标消息。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio