2015-12-23 34 views
0

我想使用C++/wxWidgets创建第二个独立窗口,并且在运行时出现“无法创建类wxWindowNR的窗口”的错误,并且第二个窗口不显示。没有编译器/链接器错误。无法创建类的窗口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

你显示的代码没有错,所以在你没有显示的代码中必须有错误,即'ActorDetails' ctor。 –

回答

0

ActorDetails *ac = new ActorDetails(); 
ac->Create(wxGetApp().GetTopWindow(), wxNewId(), _("Existenz Console"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id")); 

替换

ActorDetails *ac = new ActorDetails(wxGetApp().GetTopWindow(),wxID_ANY,wxDefaultPosition,wxDefaultSize); 

现在产生如预期的窗口。不幸的是,我不知道区别是什么,但第二个代码变体成功实例化并显示第二个wxFrame。

这当然需要在类ActorDetails(此处未显示)中添加一个新的空构造函数无参数构造函数。

1

今天我会有同样的错误信息。很可能你忘了从你的ActorDetails构造函数调用wxFrame构造函数。