无法使用其 ID 设置事件背景 | WxWidgets

Having trouble setting background of an event with its ID | WxWidgets

我相信我在 wxPython 中做过类似的事情,我通过抓取 Id 或对象并从那里设置对象的背景来更改事件。在 WxWidgets 中我似乎遇到了麻烦,我不断收到像 operator -> or ->* applied to "int" instead of to a pointer type 这样的错误。我希望能够获得事件的父 Id/object 和事件的 Id/object 以更改它们的 background/properties。我也没有在文档中找到任何提到事件父项的内容。

我尝试过使用不同的方法,例如 GetEventObject()GetEventUserData(),并将 EventId 设为指针。我是 C++ 的新手,所以指针对我来说仍然是新的,所以我没想到有什么用。非常感谢任何帮助。

代码:

void MyFrame::OnMenuTxtBtnLeftClick(wxMouseEvent& event) {
    int EventId = event.GetId();
    EventId->SetBackgroundColour(wxColour(217, 217, 217, 19));

问题EventId是一个int,因此不能使用运算符->

您可以尝试以下使用 GetEventOjbect 的方法:

wxObject *obj = event.GetEventObject();
((myPanel *) obj)->SetBackgroundColour(wxColour(217, 217, 217, 19)); 
//^^^^^^^----------------------------->use your own type here