使用wxAny作为wxControls的容器类

时间:2011-01-12 07:19:32

标签: c++ wxwidgets

wxAny类可以用来存储wxCheckBox类或其他基于wxControl的类吗?

wxPanel *panel = new wxPanel(this, wxID_ANY);
wxCheckBox test(panel, idMenuAbout + 1, wxT("Show title"), wxPoint(20, 20));
wxAny checkBox = test;

以上代码生成错误'wxCheckBoxBase& wxCheckBoxBase::operator=(const wxCheckBoxBase&)’ is private

感谢。

1 个答案:

答案 0 :(得分:0)

问题不在于wxAny,而在于wxCheckBoxBase不可复制的问题:

wx / checkbox.h

class WXDLLEXPORT wxCheckBoxBase : public wxControl

protected:

     DECLARE_NO_COPY_CLASS(wxCheckBoxBase)
}

WX /的defs.h

/*  --------------------------------------------------------------------------- */
/*  macro to define a class without copy ctor nor assignment operator */
/*  --------------------------------------------------------------------------- */

#define DECLARE_NO_COPY_CLASS(classname)        \
private:                                    \
    classname(const classname&);            \
    classname& operator=(const classname&);