我有一个 wxPanel 类。我需要该类的每个实例都处理一个单击事件。在 wxWidgets 中这可能吗?到目前为止,我总是不得不使用窗口 ID 将事件分配给对象(例如按钮)。
但是这个 wxPanel 即将在屏幕上以乘法方式出现,所以我需要避免使用窗口 ID。
班上:
面板.h
class UVStatusPanel : public wxPanel
{
public:
UVStatusPanel(wxFrame* parent, int pos);
void paintEvent(wxPaintEvent& evt);
void paintNow();
//THIS is expected to be the event function
void onClick(wxCommandEvent& WXUNUSED(event));
bool State(bool state);
bool State();
DECLARE_EVENT_TABLE()
private:
bool painting;
bool state;
void render(wxDC &dc);
};
面板.cpp
/**The constructor*/
UVStatusPanel::UVStatusPanel(wxFrame* parent, int pos) :
wxPanel(parent)
{
/** some align and draw rect code was there**/
//My two attepmts to assign the click event to the panel
Connect(this->m_windowId, wxEVT_COMMAND_LEFT_CLICK,
wxCommandEventHandler(UVStatusPanel::onClick));
//EVT_COMMAND_LEFT_CLICK(this->m_windowId,UVStatusPanel::onFocus);
}
当前已注册 noc 点击。谁能解释一下点击事件在 wxWidgets 中是如何工作的?