我是设置定时器为100ms,而一般双击时间大于100ms,所以系统将双击认为是两个单击事件了,怎么解决呢?
我主要是抓图时需要抓鼠标,如果能达到这个效果就行了,不一定非要下述方法。有一种直接读显存的方法,不知怎么用?读显存应该可以连鼠标一起读出来。
...
    Windowhld:=Windowfrompoint(CurPoint);
    Threadld:=GetWindowThreadProcessId(Windowhld,nil);
    AttachThreadInput(GetCurrentThreadId,threadld,true); 
    GlobalCur := getcursor;
    AttachThreadInput(GetCurrentThreadId,threadld,false);
    GetIconInfo(GlobalCur, IconInfo);
    DrawIcon(ScreenShoot1.Canvas.handle,CursorX-IconInfo.xHotspot,CursorY-IconInfo.yHotspot,GlobalCur);
...

解决方案 »

  1.   

    AttachThreadInput(GetCurrentThreadId,threadld,true); 
    ...
    AttachThreadInput(GetCurrentThreadId,threadld,false);
    以上两句话导致双击无效(我使用的timer为100ms调用一次上面的语句)
    需要这样解决:
    首先判断鼠标所在的窗体是否变化,若没有变化,则不要调用以上语句。这样就解决了
      

  2.   

    抓图时需要抓鼠标用的着这么复杂吗?学VB找王国容 Visual Basic6.0和Windows API讲座那本书里面有讲如何实现,代码非常少。可能不超过10行吧