我想用C ++ / wxWidgets创建第二个独立窗口,我得到一个错误"无法创建类wxWindowNR"在运行时,第二个窗口不显示。没有编译器/链接器错误。
违规代码是:
void test_gui(){
ActorDetails *ac = new ActorDetails(wxGetApp().GetTopWindow(),wxID_ANY,wxDefaultPosition,wxDefaultSize); //ActorDetails inherits wxFrame
wxPanel *Panel1 = new wxPanel(ac, wxNewId(), wxPoint(256,224), wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
ac->Show(true);
}
知道发生了什么事吗?
答案 0 :(得分:1)
我今天也有同样的错误信息。很可能你忘了从ActorDetails构造函数中调用wxFrame构造函数。
答案 1 :(得分:0)
替换
ActorDetails *ac = new ActorDetails(wxGetApp().GetTopWindow(),wxID_ANY,wxDefaultPosition,wxDefaultSize);
与
ActorDetails *ac = new ActorDetails();
ac->Create(wxGetApp().GetTopWindow(), wxNewId(), _("Existenz Console"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id"));
现在按预期生成一个窗口。不幸的是我不知道有什么区别,但代码的第二个变种成功实例化并显示第二个wxFrame。
当然这需要在类ActorDetails中添加一个新的空构造函数而不添加参数构造函数(此处未显示)。