MSFlexGrid 控件的使用可以参考控件的稳当说明呀!
但是要实现编辑功能,控件没有提供现成的,只有自己做:
每次要编辑某一单元内容时,弹出一个编辑框,其位置、大小正好和需要编辑的单元格一样大,无边框,而且和控件互相传递数据,还是有一些烦琐的!

解决方案 »

  1.   

    //用classview为控件生成一个变量m_cMSFGrid.
    //在初始对话框中设列宽和标签(列宽为270可容两个字符)
    BOOL CTestkillDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); //...
    m_cMSFGrid.SetColWidth(nColProcessNO,270); //设列宽
    m_cMSFGrid.SetColWidth(nColProcessName,2160);
    m_cMSFGrid.SetColWidth(nColProcessID,1080);
    m_cMSFGrid.SetColWidth(nColProcessPriority,1620);
    m_cMSFGrid.SetColWidth(nColProcessPath,4320);
    m_cMSFGrid.SetColWidth(nColProcessThreads,720); m_cMSFGrid.SetRow(0);
    m_cMSFGrid.SetCol(0); //设标签
    m_cMSFGrid.SetText((LPCTSTR)"NO");
    m_cMSFGrid.SetCol(nColProcessName);
    m_cMSFGrid.SetText((LPCTSTR)"Process Name");
    m_cMSFGrid.SetCol(nColProcessID);
    m_cMSFGrid.SetText((LPCTSTR)"Process ID");
    m_cMSFGrid.SetCol(nColProcessPath);
    m_cMSFGrid.SetText((LPCTSTR)"Full Path");
    m_cMSFGrid.SetCol(nColProcessPriority);
    m_cMSFGrid.SetText((LPCTSTR)"Base Priority");
    m_cMSFGrid.SetCol(nColProcessThreads);
    m_cMSFGrid.SetText((LPCTSTR)"Threads");


    return TRUE;  // return TRUE  unless you set the focus to a control
    }在响应函数中可通过
    m_cMSFGrid.SetRow(行号);
    m_cMSFGrid.SetCol(列号);
    m_cMSFGrid.SetText(文本);
    来给每一个表格添值.
    编辑比较困难但也可用下面的方法(我就是这样做的)
    添加一个EDIT按钮其响应函数添加代码:
    OnButtonEdit()
    {
    int nCurRow=m_cMSFGrid.GetCurRow();
    int nCurCol=m_cMSFGrid.GetCurCol();
    CString sSelText=m_cMSFGrid.GetText();
    CString sWriteText;
    //do sth
    m_cMSFGrid.SetRow(nCurRow);
    m_cMSFGrid.SetCol(nCurCol);
    m_cMSFGrid.SetText(sWriteText);
    sSelText.Empty;
    sWriteText.Empty;
    return;
    }