wxWindows的事件表机制
以下摘自wxWidgets使用手册
挂载事件表
你并不一定非要实现继承自某个类的新类,才可以改变它的事件表。对于那些继承自wxWindow的类来说,有另外一种可取代的方法。你可以通过实现一个新的直接继承自wxEvtHandler的新类,然后定义这个新类事件表,然后使用wxWindow::PushEventHandler函数将这个事件表压入到某个窗口类的事件表栈中。最后压入的那个事件表在事件匹配过程中将会被最先匹配,如果在其中没有匹配到对应的事件处理过程,那么栈中以前的事件表仍将被匹配,如此类推。你还可以用wxWindow::PopEventHandler函数来弹出最顶层的事件表,如果你给wxWindow:: PopEventHandler函数传递的是True的参数,那么这个弹出的事件表将被删除。
这种方法可以避免大量的类重载,也使不同的类的实例共享同一个事件表成为可能。
有时候,你需要手动调用窗口类的事件表,这时候你应该使用wxWindow::GetEventHandler方法,而不是直接使用调用这个窗口类的成员函数。虽然wxWindow::GetEventHandler通常返回这个窗口类本身。但是如果你之前曾经使用 PushEventHandler压入另外一个事件表,那么函数将会返回处于最顶层的事件表。因此使用wxWindow:: GetEventHandler函数才可以保证事件被正确的处理。
PushEventHandler的方法通常用来临时的或者永久的改变图形界面的行为。举例来说,加入你想在你的应用程序实现对话框编辑的功能。你可以捕获这个对话框和它的内部控件的所有的鼠标事件,先使用你自己的事件表处理这些事件,来进行类似拖拽控件,改变控件大小以及移动控件动作。这在联机教学中也是很有用技术。你可以在你自己的事件表中过滤收到的事件,如果是可以接受的,则调用wxEvent::Skip函数正常处理。
PS:看到这,我十分的兴奋,我测试了一下这个功能,的确很爽.
wxWindows的事件表机制相关推荐
- wxWidgets事件处理(手机播放器连载系列2)
1. 绝大多数GUI程序都是事件驱动的,应用程序一直停留在一个消息循环中,等待这用户或者别的定时事件的发生,一旦收到某种事件,应用程序就将其扔给处理这个事件的函数. 不同的GUI编程架构用不同的方法将 ...
- winform 让他间隔一段时间 执行事件 且只执行一次_Redis 事件机制详解
点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! Redis 采用事件驱动机制来处理大量的网络IO.它并没有使用 libevent 或者 li ...
- js中如何得到循环中的点击的这个id_Js篇面试题9请说一下Js中的事件循环机制
虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...
- 一篇文章搞懂JavaScript运行机制
单线程的JavaScript: 众所周知JavaScript这门语言是单线程,但是为什么要设计成单线程呢?明明多线程更加有效率. 这里我们就要从JavaScript的用途来考虑,JavaScript是 ...
- 笔试题——JavaScript事件循环机制(event loop、macrotask、microtask)
今天做了一道笔试题觉得很有意义分享给大家,题目如下: setTimeout(()=>{console.log('A'); },0); var obj={func:function () {set ...
- poll函数_I/O--多路复用的三种机制Select,Poll和Epoll对比
I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作 ...
- IO多路复用的三种机制Select,Poll,Epoll
目录 1. IO多路复用 2.操作系统基础概念 3.Select 4.Poll 5.Epoll 6.总结 1. IO多路复用 I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓 ...
- select * 映射错误_高性能IO模型分析-浅析Select、Poll、Epoll机制(三)
本章(第三章)内容其实和第二章内容,都是第一章内容的延伸.第二章内容是第一章内容的延伸,本章内容则是第一章内容再往底层方面的延伸,也是面试中考察网络方面知识时,可能会问到的几个点. select.po ...
- ccflow表结构与运行机制(二次开发必读)
为什么80%的码农都做不了架构师?>>> 驰骋工作流引擎,工作流程管理系统,表结构与运行机制. ---------------------------------------- ...
- io多路复用的原理和实现_IO多路复用的三种机制:select 、poll 、epoll
目录 概述 IO多路复用本质 IO多路复用的优势 IO多路复用Select机制 IO多路复用Poll机制 IO多路复用Epoll机制 select,poll,epoll机制区别总结 php7进阶到架构 ...
最新文章
- 获取DataRow某列的值的封装
- 中国量子通信再获突破,潘建伟团队完成人类首次洲际量子通信
- 【GAN优化】详解GAN中的一致优化问题
- 五个你绝不可忽视的HTML5特性
- 计蒜客挑战难题:整除问题
- 翻牌抽奖 php,PHP+jQuery开发简单的翻牌抽奖实例
- bzoj 1656: [Usaco2006 Jan] The Grove 树木(BFS)
- react多个网络请求_react中网络请求的优化!
- 下载ts流视频的成功方法
- Hexo博客之速度优化
- 如何升级win10.
- 一文读懂高频交易程序化交易和量化交易区别
- 陈彤离职,新浪在门户竞争中将继续被边缘化
- mmgrid cols表头列隐藏
- krpano 运算符
- 【GIT】git cz配置使用方法
- 计算机科学核心知识体系
- Walk Through the Fire,Is there a way out
- (冒泡排序) Problem: 并列排名
- 关于前端大佬:尤雨溪
热门文章
- uitableView group模式下的间距问题
- JavaScript基础---语言基础(4)
- ASP.NET中IsPostBack属性研究
- 黑马程序员_Java高新技术
- 颜色直方图的计算、显示、处理、对比及反向投影(How to Use Histogram? Calculate, Show, Process, Compare and BackProject)...
- 如何能够做好主动沟通
- 受控文本生成任务简述
- 【李宏毅NLP笔记】Tacotron 可以从哪些方面改进
- 机器学习之特征工程(二)
- 李宏毅自然语言处理——多语言BERT