wxWidgets学习笔记(三):事件_接受自己,改变自己的博客-程序员ITS203

技术标签: c++  wxWidgets学习笔记  wxwidgets  

说明:
本文是作者的一点总结,对所学的回顾与记录,如有不妥之处,欢迎大家指正,并且讨论交流。
本文着重介绍如何自定义自己的事件类。

1、GUI程序是事件驱动的,一个wxGUI程序的执行过程:主函数在wxApp的OnInit()实现,OnInit()中创建一个frame或者dialog的实例,开始循环,等待事件发生并交给相应的事件处理函数处理。

2、事件分为两类:wxWidgets支持的控件事件以及自定义事件。wxWidgets控件事件有两种处理方法,静态时间表,动态事件连接;自定义事件一般继承自wxEvent或者其子类wxCommandEvent等其他事件。

3、一个事件一般包含标识符,事件类型,事件处理函数。
静态时间表头文件类中声明DECLARE_EVENT_TABLE();实现文件cpp
BEGIN_EVENT_TABLE(子类,父类)
EVT_PAINT(子类::处理函数)
END_EVENT_TABLE()
动态事件则用Connect()函数。
4、自定义事件代码如下:

class wxLihuanEvent : public wxEvent
{
    
private:
    wxString m_string;
public:
    wxLihuanEvent(wxEventType commandType = wxEVT_NULL,int id = 0);
    virtual wxEvent ∗Clone() const;
    wxString getString();
};
typedef void (wxEvtHandler::∗wxLihuanEventFunction)(wxLihuanEvent&);

BEGIN_DECLARE_EVENT_TYPES()
    DECLARE_EVENT_TYPE(wxEVT_Lihuan, 801)
END_DECLARE_EVENT_TYPES()

#define EVT_LIHUAN(id, fn) \
DECLARE_EVENT_TABLE_ENTRY(wxEVT_Lihuan, id,−1,(wxObjectEventFunction) (wxEventFunction)(wxLihuanEventFunction) &fn,(wxObject ∗)NULL)

实现文件为:

#include "wxLihuanEvent.h"

DEFINE_EVENT_TYPE(wxEVT_Lihuan)

wxLihuanEvent::wxLihuanEvent(wxEventType commandType/*=wxEVT_NULL*/,int id /*= 0*/)
    :wxEvent(commandType,id)
{
    
    m_string="lihuan";
}

wxEvent* wxLihuanEvent::Clone()
{
    
    return new wxLihuanEvent(*this);
}

wxString wxLihuanEvent::getString()
{
    
    return m_string;
}

发送一个自定义事件

wxLihuanEvent event(wxEVT_Lihuan, GetId());
event.SetEventObject(this);
GetEventHandler()->ProcessEvent(event);

wxWidgets中的宏很多,自定义事件也可用,不过最终还是如此,要灵活,条条大路通罗马不是。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42922398/article/details/104052905

智能推荐

C语言实现键盘记录器_渣渣的夏天的博客-程序员ITS203_c语言 键盘记录

C语言实现键盘记录器开发语言:C开发工具:Visual Studio 2019开发时间:2019.8.7开发者:Summer参考课程:C/C++黑客技术:键盘记录器……项目源码参考:C语言实现键盘记录器-源码一、编写Crack.dll钩子,记录键盘操作  源码参考:Crack二、编写使用程序 CrackPassword  源码参考:CrackPassword三、使用说明 ...

if中写大括号和没有写大括号的区别_isjun26的博客-程序员ITS203_if不写大括号

如果没写大括号,if下面的第一行归if管,其他的行不归if管,如果写大括号,括号的所有内容都归if管。

zigbee组网_tanqiuwei的博客-程序员ITS203

组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。网络初始化:Zigbee网络的建立是由网络协调器发起的,任何一个zigbee节点要组建一个网络必须要满足以下两点要求:1.节点是FFD节点,具备zigbee协调器的能力;2.节点还没有与其他网络连接,当节点已经与其他网络连

决策树(九)--极端随机森林及OpenCV源码分析_Eason.wxd的博客-程序员ITS203

原文:http://blog.csdn.net/zhaocj/article/details/51648966一、原理ET或Extra-Trees(Extremely randomized trees,极端随机树)是由PierreGeurts等人于2006年提出。该算法与随机森林算法十分相似,都是由许多决策树构成。但该算法与随机森林有两点主要的区别:1、随机森林应用的是Baggin

halcon例程解析一 apply_metrology_model.hdev_Expect for future的博客-程序员ITS203

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200903110653306.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZV9mdXR1cmVfd2F5,size_16,color_FFFFFF,t_70#pic_centerdev_update_off ()设备更新关闭()read_image

Jetson NX和Nano上使用TensorRT部署YOLOv4模型速度测试_枸杞叶儿的博客-程序员ITS203

Jetson NX和Nano板卡上使用TensorRT推理速度测试前言Xavier NX 上TensorRT测试:Nano上TensorRT推理测试:前言  以下所有测试基于enazoe大佬的yolo-tensorrt项目进行,坏境配置比较简单。  简单测试一下YOLOv4模型在NX和Nano上的推理速度,实际推理速度可能会有波动,如发现问题欢迎大家交流!Xavier NX 上TensorRT测试: 模型 输入尺寸 加速精度

随便推点

WebRequest 类和 WebResponse 类_skylen的博客-程序员ITS203

WebRequest类和WebResponse类WebClient类使用起来比较简单,但是它的功能非常有限,特别是不能使用它提供身份验证证书。这样,在上传数据时问题就出现了,许多站点都不会接受没有身份验证的上传文件。尽管可以给请求添加标题信息并检查响应中的标题信息,但这仅限于一般意义上的检查,对于任何一个协议,WebClient没有具体的支持。由于WebClient是通用的类,主要用于

TreeSet的排序规则:自然排序和定制排序_等慢慢的博客-程序员ITS203_treeset 自然排序

自定义类型存储,如Student和Teacher类型数据等,由于这些自定义的类型的数据没有实现Comparable接口,因此无法直接在TreeSet集合中进行排序操作。解决方案,Java提高了两种TreeSet的排序规则**,自然排序**(默认情况下,TreeSet集合采用自然排序)和定制排序自然排序自然排序要求TreeSet集合中存储的元素所在的类必须实现Comparable接口,并重写comoareTo()方法,然后TreeSet集合就会对该类型使用compareTo()方法进行比较,并默认进

华为杯b 气象预测二次建模_真实数模人的博客-程序员ITS203

经过讨论研究,目前写了B题【空气质量预报二次建模】的两份解题思路。看截图,四个问题均已解答,如果觉得有用就拿去。

c语言程序设计考试流程图,c语言程序设计流程图详解.pdf_weixin_39821189的博客-程序员ITS203

c 语言程序设计流程图详解介绍常见的流程图符号及流程图的例子。本章例 1 - 1 的算法的流程图如图 1 - 2 所示。本章例 1 - 2 的算法的流程图如图 1 - 3 所示。在流程图中, 判断框左边的流程线表示判断条件为真时的流程, 右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注 ...

英语学习点滴_RONGE-KUTA的博客-程序员ITS203

简单记述 自己对英语的语义学 词源的研究

科目三考试指南_叶广明_微信ye_guangming的博客-程序员ITS203

正在准备科目三的您,对顺利通过考试有信心吗?今天,小编为大家带来科目三靠边停车技巧,通过讲解靠边停车考试要求,让学员更好地掌握相关技巧,希望能帮到大家。靠边停车考试项目中规定,车前保险杠离目标前后均不超过50cm,车距目标的横向距离保持在50-100cm之间,同时停车后车要与路边平行且前轮回正,制动要平稳。●如何才能保证制动平稳呢?必须要做到五字要诀,即轻、重、松、保和

推荐文章

热门文章

相关标签