1》
创建wxGrid
WX_GRID* m_fieldsGrid
m_fieldsGrid = new WX_GRID( sbFields->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_fields = new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_fieldsGrid, m_symbol );
FDC_SHOW_NAME
FDC_SHOW_NAME其实上图表格中的Show Name一列,下面我们来研究如何在wxGrid表单创建复选框样式的列:
case FDC_SHOW_NAME:
return aTypeName == wxGRID_VALUE_BOOL;
“wxGRID_VALUE_BOOL” 布尔型数据,是一种数据类型,用在网格控件wxGrid中。
wxGridCellAttr m_boolAttr
获取m_boolAttr
template <class T>
wxGridCellAttr* FIELDS_GRID_TABLE<T>::GetAttr( int aRow, int aCol, wxGridCellAttr::wxAttrKind )
{
case FDC_SHOW_NAME:
m_boolAttr->IncRef();
return m_boolAttr;
创建m_boolAttr;
wxGridCellAttr* m_boolAttr;
m_boolAttr = new wxGridCellAttr;
m_boolAttr->SetRenderer( new wxGridCellBoolRenderer() );
m_boolAttr->SetEditor( new wxGridCellBoolEditor() );
m_boolAttr->SetAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
wxGridCellBoolRenderer是wxWidgets库中的一个类,用于在网格控件中渲染布尔值单元格,并允许用户以可视化的方式查看和操作这些数据。
wxGridCellBoolRender类是wxGridCellRender的子类,现在我们看看wxWidgets中包含了多少中Grid Cell的渲染器。
wxGridCellBoolEditor是一个用于表格控件(wxGrid)的编辑器类,用于编辑布尔类型的单元格数据。
wxWidgets中包含的所有wxGridCellEditor如下图所示:
我们可以看到wxGridEditor与wxGridRender基本上 是一一对应的。
如果我们想要冲毁一种新的表格列样式,那么需要可能实现两个类?一个类继承wxGridEditor,一个类继承wxGridRender。
销毁m_boolAttr
FIELDS_GRID_TABLE<T>::~FIELDS_GRID_TABLE()
{
m_boolAttr->DecRef();