公司项目用到了MFCCGridCtrl,比起MFC原生的控件来说,这个控件用起来还是不错的(不过这一点也不足以让我喜欢上MFC),用CCGridCtrl控件做了一个表格,根据需求将其中的某些项变成了下拉框或是复选框。但是加入后问题来了,当双击时,被双击的项都会变成一个编辑框,无论被双击的项是原生的表格还是下拉框或是复选框,下拉框倒好解决,只需在初始CCGridCtrl控件时设置下拉框项的风格为CBS_DROPDOWNLIST即可:
在初始化函数中调用上述函数即可。
但是复选框项好像就不是那么简单了,开始以为CCGridCtrl控件提供了相应的方法,只是我没有发现,于是上网搜了下希望发现这一办法,搜了一圈没搜到,只有自己写了。
首先是初始化部分:
void CNetWorkDlg::SetCellCombo(int Row, int Col, CStringArray &items)
{
m_GridList.SetCellType(Row, Col, RUNTIME_CLASS(CGridCellCombo));
CGridCellBase* pCell = m_GridList.GetCell(Row, Col);
if( CGridCellCombo *pItem = dynamic_cast<CGridCellCombo *>(pCell) )
{
pItem->SetStyle(CBS_DROPDOWNLIST);
pItem->SetOptions(items);
if( items.GetSize() > 0 )
{
pItem->SetText(items.GetAt(0));
}
}
}
在初始化函数中调用上述函数即可。
但是复选框项好像就不是那么简单了,开始以为CCGridCtrl控件提供了相应的方法,只是我没有发现,于是上网搜了下希望发现这一办法,搜了一圈没搜到,只有自己写了。
首先是初始化部分: