JS 区域外事件捕捉setCapture

       鼠标捕获(setCapture)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收所有鼠标事件。
  不过setCapture不支持键盘事件, 只能捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
  程序中主要是要捕获onmousemove和onmouseup事件。
  msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。
    参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样);

    参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。

  object.setCapture() 当一个object的被 setCapture 后,他的方法将会被继承到整个文档进行捕获。当不需要把方法继承到整个文档捕获时,要用 object.releaseCapture() 来释放.

  Mozilla 也有类似的功能,方法稍微不同 
    window.captureEvents(Event.eventType) 
    window.releaseEvents(Event.eventType)

展开阅读全文

C# 非正常事件捕捉

03-10

C# winForm里面有没有可以捕捉程序异常关闭的事件?rn比如:我在任务管理器里面把程序关闭了,可以捕捉这对应的事件?rnrn高手,告诉我,怎么搞?rn我已经使用了:rn[code=csharp]rn //处理未捕获的异常rn Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);rnrn //处理UI线程异常rn Application.ThreadException += delegate(object sender, ThreadExceptionEventArgs e)rn rn log.Error("Catch the UI thread Exception");rn log.Error(e.Exception);rn ;rnrn // //处理UI线程异常rn AppDomain.CurrentDomain.UnhandledException += delegate(object obj, UnhandledExceptionEventArgs args)rn rn log.Error(" Catch the non-UI thread Exception");rn log.Error(args.ExceptionObject);rn ;rnrn Application.ThreadExit += delegate(object sender, EventArgs e)rn rn log.Error("Application.ThreadExit");rn ;rnrn Application.ApplicationExit += delegate(object sender, EventArgs e)rn rn log.ErrorFormat("Process-watch-tool The program will be shut down");rn //Process.GetCurrentProcess().Kill();rn ;rnrn Process.GetCurrentProcess().Exited += delegate(object sender, EventArgs e)rn rn log.Error(" Process.GetCurrentProcess().Exited ");rn ;rnrn Process.GetCurrentProcess().Disposed += delegate(object sender, EventArgs e)rn rn log.Error(" Process.GetCurrentProcess().Disposed ");rn ;rnrn // 不检查控件的跨线程调用rn Control.CheckForIllegalCrossThreadCalls = false;rn[/code]rnrn这些都捕捉不了··· 论坛

串口事件捕捉问题

12-30

本人在写一个串口通信程序,对串口事件的捕捉问题不太明白,现有几个问题要请教大家:rn rn上网查过的资料几乎都一个版本的:rn就是————捉串口事项。mscomm控件可以采用轮询或事件驱动的方法从端口获取数据。我们介绍比较使用的事件驱动方法:有事件(如接收到数据)时通知程序。在程序中需要捕获并处理这些通讯事件。 rnrn在mainfrm.h中: rnrnprotected: rnrnafx_msg void oncommmscomm(); rnrndeclare_eventsink_map() rnrn在mainfrm.cpp中: rnrnbegin_eventsink_map(cmainframe,cframewnd )   rnrnon_event(cmainframe,id_commctrl,1,oncommmscomm,vts_none) rnrn           //映射activex控件事件 rnrnend_eventsink_map() rn然后就是写rnvoid CInputDlg::OnCommMscomm1() rnrn // TODO: Add your control notification handler code herern VARIANT vResponse;rn int k;rn CString m_Zero;rn if(m_Com.GetCommEvent()==2)rn rn k=m_Com.GetInBufferCount();rn if(k>0)rn rn vResponse=m_Com.GetInput();rnrn rn rn rn rnrn但我写的这个东西,在完成一次完整的操作的过程中,要发送多次命令(数据),发送的同时也要多次检测rn串口返回的数据(也即捕捉串口事件),然后根据返回的数据结果,再发送下一个命令。rn但我不明白,OnCommMscomm1() 函数是什么时候开始执行的???这个函数不是直接调用的,rn稍微控制的不好,m_Com.GetCommEvent()这个函数我根本就跟踪不到,rnoncommmscomm(); 到底是怎么用的啊rnrn 论坛

没有更多推荐了,返回首页