2010-06-28 3 views
0

나는 wxHtmlListBox의 서브 클래스의 TestClass라는 가지고,하지만 난 오류 얻을 :wxWidgets에 : wxString :: wxString (INT)이 컨텍스트 내에서 개인

TestClass *tc = new TestClass(this, wxID_ANY, wxDefaultPosition, 
           wxDefaultSize, NULL, wxBORDER_DEFAULT); 
:

/usr/include/wx-2.8/wx/string.h:682:0 /usr/include/wx-2.8/wx/string.h:682: error: 'wxString::wxString(int)' is private
MainFrame.cpp:106:0 MainFrame.cpp:106: error: within this context

MainFrame.cpp 라인 (106)이있다

TestClass의 파일은 http://cl.ly/1VSo

에서 확인할 수 있습니다.

답변

2

당신은 const를 wxString 기준으로 wxBORDER_DEFAULT 전달되고 있습니다

TestClass(
    wxWindow* parent, // this 
    wxWindowID id = wxID_ANY, // wxID_ANY 
    const wxPoint& pos = wxDefaultPosition, // wxDefaultPosition 
    const wxSize& size = wxDefaultSize, // wxDefaultSize 
    long style = 0, // NULL 
    const wxString& name = wxHtmlListBoxNameStr); // wxBORDER_DEFAULT 

...하지만 wxBORDER_DEFAULT는 열거의 일부 (본질적으로 정수)입니다 :

enum wxBorder 
{ 
    /* this is different from wxBORDER_NONE as by default the controls do have */ 
    /* border */ 
    wxBORDER_DEFAULT = 0, 

    wxBORDER_NONE = 0x00200000, 
    wxBORDER_STATIC = 0x01000000, 
    wxBORDER_SIMPLE = 0x02000000, 
    wxBORDER_RAISED = 0x04000000, 
    wxBORDER_SUNKEN = 0x08000000, 
    wxBORDER_DOUBLE = 0x10000000, /* deprecated */ 
    wxBORDER_THEME = 0x10000000, 

    /* a mask to extract border style from the combination of flags */ 
    wxBORDER_MASK = 0x1f200000 
}; 

그래서이 생성자를 사용하고 wxString에 대해 언급 한 내용 :

wxString::wxString(int) 

... 따라서 오류가 발생합니다. 문자열이나 NULL을 전달 시도 대신 :-)

+0

감사합니다. 나는 그것을 놓쳤다 고 믿을 수 없습니다. 이것과 아래의 토마스의 대답은 모두 훌륭했습니다. –

2

TestClass에 대한 생성자, 특히 마지막 매개 변수/인수 일치하지 않습니다 라인 (106) 다음 TestClass 문자열이 아닌 테두리 스타일을 원하는

TestClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxHtmlListBoxNameStr); 

을 .

관련 문제