CGridCtrl m_Grid; //CGridCtrl 为表格控件
m_Grid.SetFixedRowCount(1); //设置固定的行为1,即表的最上1行用户点击时不可编辑,且背景色与其它行不一样
m_Grid.SetFixedColumnCount(); //同上,为列。默认参数为1
m_Grid.SetColumnCount(colnum); //设置表的列数为colnum
m_Grid.SetRowCount(rownum); //设置表的行数位rownum
m_Grid.SetColumnWidth(4, 25); //设置第5列列宽为25(参数从0计起)
m_Grid.SetItemText(0,i,str1); //设置表格的0行i列显示的内容为str1
CString str,str1;
CStringArray csaEncodingMethod;
for (int i = 0; i < 4; i++)
{
AfxExtractSubString(str1,str,i,'\n');//分割字符串
AfxTrace(_T("%s\n"), str1);
csaEncodingMethod.Add(str1);//将分割后的字符串一个个添加到字符串数组里
}
for(int i = 1; i < 10; i++)
{
m_Grid.SetCellType(i, 3, RUNTIME_CLASS(CGridCellCombo)); //设置i行3列为下拉选择框
CGridCellCombo *pCell = (CGridCellCombo *)m_Grid.GetCell(i, 3);
pCell->SetStyle(CBS_DROPDOWN);
pCell->SetOptions(csaEncodingMethod); //添加单元格的下拉列表选项,选项为字符串数组里的数据
m_Grid.SetCellType(i, 4, RUNTIME_CLASS(CGridCellCheck)); //设置i行4列为复选框
CGridCellCheck *pCheck1 = (CGridCellCheck *)m_Grid.GetCell(i, 4); //获取复选框指针
}
DWORD state = m_Grid.GetCell(i,0)->GetState(); //获取i行0列的相关参数
state = state | GVIS_READONLY; //设为只读
m_Grid.GetCell(i,0)->SetState(state);
DWORD fmt = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX | DT_END_ELLIPSIS;
m_Grid.GetCell(i,j)->SetFormat(fmt); //设置i行j列相关参数,表格内容左右居中上下居中
m_Grid.SetFixedBkColor(RGB(227,238,246));
m_Grid.SetDefCellMargin(1); //设置表格文字距离边框的距离最小为1