精华内容
下载资源
问答
  • C# WinForm窗体任意位置点击事件

    千次阅读 2014-10-18 09:34:24
    方法: 在form窗体的构造函数中注册所有子控件的鼠标事件到自身的click事件中 foreach (var item in this.Controls) { ((Control)item).MouseClick += new MouseEventHandler(Form1_MouseClick); } 方法三...

    原址:http://q.cnblogs.com/q/50865/


    方法一: 用windows api 钩子程序 获取鼠标事件

    可参考: http://wenku.baidu.com/link?url=znD_SCcYw35LIqBoU3rL5HRVYJIjJxbx3kG7RxSPhEU83vtsvV0mKnx8QRIzyBhNXseDSiBrim3lYnuwsN748WDyLXZ6bJ_ji1KdwsD8JUO


    方法二: 在form窗体的构造函数中注册所有子控件的鼠标事件到自身的click事件中

    foreach (var item inthis.Controls)

    {

            ((Control)item).MouseClick+= new MouseEventHandler(Form1_MouseClick);

    }

    方法三: 重写WndProc

     /// <summary>

            /// windows消息窗体 屏蔽鼠标操作

           /// </summary>

            /// <paramname="m"></param>

            protected override void WndProc(ref Message m)

           {

     

               if (

                   m.Msg== 0x201 ||

                   m.Msg== 0x202 ||

                   m.Msg== 0x203 ||

                   m.Msg== 0x204 ||

                   m.Msg== 0x205 ||

                   m.Msg== 0x206 ||

                   m.Msg== 0x207 ||

                   m.Msg== 0x208 ||

                   m.Msg== 0x209)

               {

                    return;

               }

               base.WndProc(ref m);

     

            }
    展开全文
  • d3事件():事件的触发与自定义事件 原创蚁方阵 最后发布于2016-08-05 23:49:44 阅读数 5200 收藏 展开 在第4版中,d3新增了事件的触发函数dispatch,类似于jquery的trigger函数,用于触发dom元素的事件处理函数。...

    d3事件(二):事件的触发与自定义事件
    蚁方阵

    在第4版中,d3新增了事件的触发函数dispatch,类似于jquery的trigger函数,用于触发dom元素的事件处理函数。

    并且,d3的选择集合还可以注册任意名称的事件与相关的事件处理函数,即自定义事件。

    假定页面中还存在文章”d3事件(一):事件的注册与命名空间”的相关元素,基于此我们进行如下操作。

    d3.selectAll('button')
      //    d代表绑定的数据,i代表元素在集合中的位置,group代表相关的元素集合
      .on('hello', function(d, i, group) {
           //   获取事件对象
           var event = d3.event,
               output =  'Hello,' + d.username;
           //   从event里取出携带的数据
           if(event.detail && event.detail.suffix) {
                output += event.detail.suffix                
           }
           //   进行名称的处理
           alert(output);
      })

     因为hello不是html标准的事件类型,现在点击将无法触发绑定的事件函数,这时则需要使用dispatch进行触发。

    //  触发hello事件函数
    d3.selectAll('button').dispatch('hello', {
                    //  携带的数据会自动装入到d3.event对象中
                    detail : {
                        suffix : '!'
                    }
                }); 
    //  将会输出"Hello,yiifaa!"字样     

           

          dispatch能非常快捷地激发函数,并且能保留当前元素的上下文,如果需要更个性化、更强大的触发函数,则需要使用customEvent。看customEvent这个名称感觉像是定义个性化事件,然而它却是用于事件的触发,可以控制上下文、传递的数据以及对d3事件的包装。

    d3.customEvent(
        //  替换d3.event,如果在html的标准事件里出发,如点击事件,还会将d3.event作为此对象的sourceEvent插入
        {
            detail : {
                prefix : '你好,'
            }
        }, 
        //  替换处理函数
        function(params) {
            var ev = d3.event;
            //  还可以获取ev.sourceEvent,它指向之前发生的UI事件
            alert(ev.detail.prefix + this.datum().username +params.suffix);
        }, 
        //  替换处理函数的下上文,即处理函数的this
        d3.selectAll('button'), 
        //  处理函数的参数列表
        [{
            suffix : '!'
        }]
    );

    //  现在输出的结果为"你好,yiifaa!"

    ————————————————
    版权声明:本文为CSDN博主「蚁方阵」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yiifaa/article/details/52133516

    展开全文
  • 一般来说,在使用键盘事件的时候,如果qt界面隐藏最小化或者不在顶层不是聚焦状态了,在按键盘就没有反应了,但是有的时候想在任何情况都要能通过键盘控制程序,所以本文的宗旨就是分享如何全局接收键盘事件。...

    一、前言

    一般来说,在使用键盘事件的时候,如果qt界面隐藏最小化或者不在顶层不是聚焦状态了,在按键盘就没有反应了,但是有的时候想在任何情况都要能通过键盘控制程序,所以本文的宗旨就是分享如何全局接收键盘事件。

    二、环境

    qt5.7  win8

    三、正文

    话不多说,先上程序,在pro目录下添加一个keypad文件夹,这个位置具体要放在哪里,还是根据个人习惯来定,反正这里加的代码后期也不需要整改。

    文件夹内有capturer.h capturer.cpp keymonitor.h keymonitor.cpp

    capturer.h

    #ifndef CAPTURER_H
    #define CAPTURER_H
    
    #include <QObject>
    
    /*捕获器*/
    
    
    class KeyCapturer: public QObject
    {
        Q_OBJECT
    
    public:
        virtual ~KeyCapturer();
        static KeyCapturer*& instance()
        {
            static KeyCapturer *s = nullptr;
            if (s == nullptr)
            {
                s = new KeyCapturer();
            }
            return s;
        }
    
    public:
        void setkeyValue(int key);
    
    protected:
        KeyCapturer();
    
    signals:
        void getKey(int);
    
    private:
    };
    #endif // CAPTURER_H
    

     capturer.cpp

    #include "keypad/capturer.h"
    
    KeyCapturer::KeyCapturer()
    {
    
    }
    
    KeyCapturer::~KeyCapturer()
    {
    
    }
    
    
    void KeyCapturer::setkeyValue(int key)
    {
        emit getKey(key);
    }
    
    

    keymonitor.h

    #ifndef KEYMONITOR_H
    #define KEYMONITOR_H
    
    #include <Windows.h>
    #include <DbgHelp.h>
    
    int  startHook();
    
    bool stopHook();
    
    #endif // KEYMONITOR_H
    

    keymonitor.cpp

     

    #include "keypad/keymonitor.h"
    #include "keypad/capturer.h"
    #include <QtDebug>
    
    LRESULT CALLBACK KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam);
    
    HMODULE WINAPI ModuleFromAddress(PVOID pv);
    static HHOOK hHook;
    
    LRESULT KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
        KBDLLHOOKSTRUCT *Key_Info = (KBDLLHOOKSTRUCT*)lParam;
        if (HC_ACTION == nCode)
        {
            if (WM_KEYDOWN == wParam || WM_SYSKEYDOWN == wParam)  //如果按键为按下状态
            {
                if (Key_Info->vkCode <= 107 && Key_Info->vkCode >= 65)
                {
                    qDebug() << Key_Info->vkCode;
                    if (KeyCapturer::instance())
                    {
                        KeyCapturer::instance()->setkeyValue(Key_Info->vkCode);
                    }
                }
            }
        }
        return CallNextHookEx(hHook, nCode, wParam, lParam);
    }
    
    HMODULE ModuleFromAddress(PVOID pv)
    {
        MEMORY_BASIC_INFORMATION mbi;
        if (VirtualQuery(pv, &mbi, sizeof(mbi)) != 0) {
            return (HMODULE)mbi.AllocationBase;
        } else {
            return NULL;
        }
    }
    
    int startHook()
    {
        hHook = SetWindowsHookExW(WH_KEYBOARD_LL, KeyboardHookProc, ModuleFromAddress((PVOID)KeyboardHookProc), 0);
        int error = GetLastError();
        return error;
    }
    
    bool stopHook()
    {
        return UnhookWindowsHookEx(hHook);
    }
    

     然后在mainwindow.h中加入

    #include "keypad/keymonitor.h"
    #include "keypad/capturer.h"

    在mainwindow.cpp中加入

        connect( KeyCapturer::instance(), &KeyCapturer::getKey, [=](int key){
            qDebug()<<QString::number(key);
        });
        startHook();

     当然这个键盘监听事件也是可以关闭的

    通过stopHook()这个函数即可。

    2020年3月13日11:19:03更新

    上面程序只是获取字母和小键盘的按键回调,如果想获取更多,如大键盘的数字和F1-F12等,将keymonitor.cpp内的107换成大一些即可。

    四、结语

    qt监听全局键盘事件

    展开全文
  • 父子组件之间的传值在某些场景下是比较麻烦的,前几天看到一个新的传值方式,我自己试...第步,在传出值的组件中注册事件,带上需要传的值 <template> <div class="childa"> <button @click="send

    父子组件之间的传值在某些场景下是比较麻烦的,前几天看到一个新的传值方式,我自己试了一下,感觉还是很方便的,在这里跟大家分享下
    第一步,在main.js中挂载方法,代码如下

    var bus = new Vue()//新创建一个实例,用以传值
    Vue.prototype.bus = bus//挂载在vue的原型上
    

    第二步,在传出值的组件中注册事件,带上需要传的值

    <template>
      <div class="childa">
    
        <button @click="sendTo">Childa</button>
      </div>
    </template>
    
    <script>
    export default {
      data () {
        return {
          name: 'jaychou'
        }
      },
      methods: {
        sendTo () {
          this.bus.$emit('sendTo', this.name)//注册事件,传值
        }
      }
    }
    </script>
    

    第三步,在另外一个组件中接收

    <template>
      <div class="childb">
        {{a}}
      </div>
    </template>
    
    <script>
    export default {
      data () {
        return {
          a: ''
        }
      },
      created () {
        this.bus.$on('sendTo', name=> {
          this.a= name
        })
      }
    }
    </script>
    

    此方法适用于任意两个组件之间的传值,赶快试试吧!

    展开全文
  • 前面的话  鼠标和键盘是电脑端主要的输入设备,上篇介绍了鼠标事件,本文将详细介绍键盘事件 ... 当用户按下键盘上的任意键时触发,如果按住不放的话,会重复触发该事件 div id="test" style="height: 30px;w
  • 点击任意非本身元素,指定元素隐藏 在实际开发过程中经常...第一种方法非常容易实现,但是第种方法就非常的头疼了,为此将介绍两种方案解决第个问题。 一、使用点击绑定法 jQuery代码: $("span").click(funct...
  • SVG概述:SVG是可缩放矢量图形(Scalable Vector Graphics),它基于可扩展标记语言(XML),用于描述维矢量图形的一种图形格式。 Tips 欲看以下完整代码、js文件和svg文件,请移步我的GitHub。 一、SVG特点简述 百度...
  • Pico Neo 2丨()手柄事件管理

    千次阅读 2020-03-06 13:38:14
    本节讲解内容:获得手柄按键事件,写成一个挂在任意物体上的脚本,以后往这个脚本的相应委托里注册事件就好。 一、可获得的事件 首先我们来看看能获得哪些事件,以及这些事件他们的触发按键/方式是什么 1、...
  • javascript 事件对象()

    2015-01-22 11:04:01
    keydown,按下任意键,按下的意思是按下立即触发 keyup,弹起任意键,弹起就是按下然后释放触发 keypress,是按下字符键,abc,123,标点符号什么,shift,ctrl,alt等等不是字符的键无效 键码:键盘上的任意键 ...
  • 3、 任意的QObject对象都具备事件处理的能力(想要接受并处理事件的对象必须继承自QObject)   QEvent是所有事件对象的抽象基类   事件来源 1、Spontaneous events(自发事件) 由系统消息(鼠标按键、键盘按键灯)...
  • JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开发提供更多的强大功能。最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,此外还可以...例如:单击文档任意...
  • 近两天学习了一个新的框架,就是EventBus,它可以取代intent,实现在不同组件之间进行数据...第步:就是在代码中使用了。 总共分四步: 1. 注册 2. 发送消息 3. 接收消息 4. 注销 具体如下: 第一步:注
  • Datagrid事件响应()

    2005-10-17 22:01:00
    本文主要解决在Datagrid中任意点击一个格子,都会出现选中一行的需求。...有朋友会说,就还不简单,我们可以把处理代码写在datagrid的mousedown事件处理程序中,用 hitTest判断选中的是哪一行哪一列的
  • 、键盘类事件 先引入js文件 1》onkeydown ===》按下键盘任意键 按下键盘上的任意一个键,都会出现系统弹出框 2》onkeyup ===》键盘释放(松开). 当任意按下键盘,再释放(松开)键盘时,会弹出弹窗 3》keyCode...
  • 模拟事件一、模拟事件(模拟一个事件的触发)、DOM中的事件模拟1、模拟鼠标事件2、模拟键盘事件( 已废弃)3、模拟其他事件4、自定义 DOM 事件三、IE中的事件模拟 一、模拟事件(模拟一个事件的触发) 事件,就是...
  • 通过按任意字符链接,将触发第页导航,然后进行另一个api调用以显示字符详细信息,例如名称,图片等。您可以通过克隆来检查代码库,并让我进行知道是否有任何问题。 屏风 这是应用程序的屏幕。 第一页加载没有数据...
  • 上一篇文章Data binding的使用(一)讲了一些基础的关于如何开始使用Data Binding做了一些介绍,这篇文章继续讲解使用Data Binding的一些其他操作,比如点击事件,或者监听对象的值的变化,做出及时的修改。...
  • DOM事件探秘之三-键盘事件

    千次阅读 2016-01-18 14:58:30
    keyDown:按下任意字符键事触发,如果按着不放会重复触发此事件; keyPress:按下任意字符键事触发,如果按着不放会重复触发此事件; keyUp:松开时触发的事件。 本次预期是实现一个抽奖的小功能,当鼠标点击开始...
  • 背景:Orthanc是本专栏中介绍过的一款新型DICOM服务器,具有轻量级、支持REST的特性,可将任意运行Windows和Linux系统的计算机变成DICOM服务器,即miniPACS。Orthanc内嵌多种模块,数据库管理简单,且不依赖于第三方...
  • 十、事件监听理解

    2019-12-29 16:12:02
    一、原生DOM事件 ...、自定义事件(消息机制) 绑定事件监听 事件名(类型): 任意 回调函数: 通过形参接收数据, 在函数体处理事件 触发事件(编码) 事件名(类型): 与绑定的事件监听的事件名一致 ...
  • javascriptDOM事件

    2017-04-09 00:36:03
    事件源:触发当前动作的源头组件(元素),可以是当前页面的任意元素(document、div、input等) js事件绑定方式 •方式一:标签内部通过事件赋值方式绑定 •方式:js中通过标签对象动态给事件对象赋值...
  • JQ DOM事件处理

    2018-10-26 11:01:47
    jQuery对象的核心事件方法,核心事件函数,主要用于为元素的任意事件(包括自定义事件)添加、取消、触发绑定的一个或多个事件处理函数 、on()方法(首选方法) 1、说明 on() 方法在被选元素及子元素上添加一个或多...
  • 脚本实现了类似requests、urllib的功能,即输入url,返回文件的进制字符串。不用依赖鼠标、键盘事件完成下载。本脚本纯粹依靠selenium Chrome实现,因此继承了Chrome的稳定、强大的功能。本脚本可以将任意url下的...
  • 但实际上,也可以使用javascript在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一样。本文将详细介绍事件模拟   引入  以下面的实际需求为例,来详细说明事件模拟的使用。按钮一的点击效果...
  • 但实际上,也可以使用javascript在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一样。本文将详细介绍事件模拟 引入  以下面的实际需求为例,来详细说明事件模拟的使用。按钮一的点击效果是弹...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 591
精华内容 236
关键字:

任意二事件