【问题标题】:wxWidgets event table with custom event带有自定义事件的 wxWidgets 事件表
【发布时间】:2014-08-30 09:48:57
【问题描述】:

我正在尝试在我的 wxWidgets 应用程序中实现自定义事件,但我无法以正确的方式编写事件表宏。

我用来实现事件的文件如下:


.h 文件

#ifndef __APP_FRAME_H__
#define __APP_FRAME_H__


#include "wx/wxprec.h"

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include <wx/evtloop.h>
#include "wxApp.h"
#include "sampleCefApp.h"


class appFrame: public wxFrame
{
public:
    appFrame(const wxString &title, const wxPoint &pos, const wxSize &size);
private:
    int OnExit();
    void OnCefStartEvent(wxCommandEvent &e);
    DECLARE_EVENT_TABLE()
};

#endif

.cpp 文件

// File : appFrame.cpp

#include "appFrame.h"


wxDEFINE_EVENT(CEF_START_EVT, wxCommandEvent)

void appFrame::OnCefStartEvent(wxCommandEvent &e)
{    
    CefRunMessageLoop();
}

int appFrame::OnExit(){
    CefShutdown();
    Destroy();
    return 0;
}

appFrame::appFrame(const wxString &title, const wxPoint &pos, const wxSize &size)
    : wxFrame(NULL, wxID_ANY, title, pos, size)
{

}

wxBEGIN_EVENT_TABLE(appFrame, wxFrame)
    EVT_COMMAND(wxID_ANY, CEF_START_EVT, appFrame::OnCefStartEvent)
wxEND_EVENT_TABLE()

当我构建我的 make 文件时,我收到以下错误:

../src/appFrame.cpp:4:15: error: expected constructor, destructor, or type conversion before ‘(’ token
../src/appFrame.cpp:24:2: error: expected constructor, destructor, or type conversion before ‘wxEventTableEntry

我认为问题与错误放置事件表宏有关。

我想知道究竟是什么问题以及如何解决?

【问题讨论】:

    标签: events wxwidgets


    【解决方案1】:

    wxDEFINE_EVENT() 宏之后需要一个分号(对于几乎所有带有 wx 前缀的宏,它们始终需要一个分号,这与没有前缀的旧版宏不同)。

    像往常一样,请参阅sample 了解该宏的使用示例。

    【讨论】:

    • 我试过了,错误还是一样,没有任何变化
    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多