无法使用其 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
我相信我在 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