自定义事件

This commit is contained in:
taynpg 2024-01-25 15:06:46 +08:00
parent 6bd8e59e1d
commit bd05a6de08

View File

@ -99,6 +99,95 @@
wxEvtHandler::Disconnect函数
*/
/*
使:
1. Clone函数
.使
wxCommandEvent派生类Veto(:
()wxEVT_CLOSE)
使 wxNotifyEvent的派生类.
2. .
3.
BEGIN_DECLARE_EVENT_TYPES()END_DECLARE_EVENT_TYPES()
使DECLARE_EVENT_TABLE (name, integer)..cpp文件中使用
DEFINE_EVENT_TYPE(name).
4.
wxFontSelectorCtrl,
wxFontSelectorCtrlEvent.
EVT_FONT_SELECTION_CHANGED(id, func)
: wxEVT_COMMAND_FONT_SELECTION_CHANGED. :
//Font selector event class
class wxFontSelectorCtrlEvent : public wxNotifyEvent
{
public:
wxFontSelectorCtrlEvent(wxEventType commandType = wxEVT_NULL,
int id = 0): wxNotifyEvent(commandType, id)
{}
wxFontSelectorCtrlEvent(const wxFontSelectorCtrlEvent& event): wxNotifyEvent(event)
{}
virtual wxEvent *Clone() const
{
return new wxFontSelectorCtrlEvent(*this);
}
DECLARE_DYNAMIC_CLASS(wxFontSelectorCtrlEvent);
};
typedef void (wxEvtHandler::*wxFontSelectorCtrlEventFunction) (wxFontSelectorCtrlEvent&);
BEGIN_DECLARE_EVENT_TYPES()
DECLARE_EVENT_TYPE(wxEVT_COMMAND_FONT_SELECTION_CHANGED, 801)
END_DECLARE_EVENT_TYPES()
#define EVT_FONT_SELECTION_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(
wxEVT_COMMAND_FONT_SELECTION_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction)
(wxFontSelectorCtrlEventFunction) & fn, (wxObject *) NULL ),
.cpp文件中:
DEFINE_EVENT_TYPE(wxEVT_COMMAND_FONT_SELECTION_CHANGED)
IMPLEMENT_DYNAMIC_CLASS(wxFontSelectorCtrlEvent, wxNotifyEvent)
wxFontSelectorCtrlEvent event(wxEVT_COMMAND_FONT_SELECTION_CHANGED, GetId());
event.SetEventObject(this);
GetEventHandler()->ProcessEvent(event);
使:
BEGIN_EVENT_TABLE(MyDialog, wxDialog)
EVT_FONT_SELECTION_CHANGED(ID_FONTSEL, MyDialog::OnChangeFont)
END_EVENT_TABLE()
void MyDialog::OnChangeFont(wxFontSelectorCtrlEvent& event)
{
// 字体已经更改了,可以作一些必要的处理。
...
}
801wxWidgets2.4
#define EVT_FONT_SELECTION_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(
wxEVT_COMMAND_FONT_SELECTION_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction)
(wxFontSelectorCtrlEventFunction) & fn,
(wxObject *) NULL ),
x-:
x-:
x--1
x-
x-NULL;
*/
class MyApp : public wxApp {
public:
virtual bool OnInit();