现在用ClistCtrl控件做一个万年历的显示,在得到年月的时候,在list表中显示当月的日期,还有星期。例如:现在有2010-06 的日期日  一   二  三  四  五  六
         1    2   3   4   5
6   7    8    9   10  11  12//省略27  28   29   30
界面如上图:
获得的数据应该怎么往列表中添加,求教添加的方法。

解决方案 »

  1.   

    ListCtrl你会用么?
    就是InsertItem和SetItemText啊
      

  2.   

    就几句InsertItem和SetItemText你也不会么?要增加一行就InsertItem,然后每个格中填数据用SetItemText,指定行号和列号就行了。
      

  3.   

    现在主要是细路不清晰:先插入0行,在插入0行N列关键是星期几的变化,每月都不一样的,怎么才能做一个插入数据的函数,现在有2010年06月1日 星期一  30天。应该怎么去插入用for循环语句
      

  4.   

    仔细一看,发现楼主还是四条裤衩的......
    你一行就是七列,当月发生变化时,首先将所有行删除,然后再写本月信息。
    首先插入一行再说,6月1日是星期一,那么从第1列开始插入数据,随后是第二直到第六列;再插入下一行......
    int nMax = 30; //一个月的天数
    int nSCol = 1; //该月第一天星期所在列。
    m_List.DeleteAllItem();//清除
    m_List.InsertItem(0,"");//插入一行
    int nCurRow = 0;//当前处于哪一行
    CString sDay = "";
    int nCurCol = nSCol;
    for(int i=0; i<nMax; i++)
    {
        sDay.Format("%d",i+1);
        m_List.SetItemText(nCurRow,nCurCol,sDay);
        nCurCol++;
        //换行判断
        if(nCurCol == 6)//到6满一行,需要加行并重新初始nCurCol
        {
            nCurRow++;
            m_list.InsertItem(nCurRow,"");
            nCurCol = 0;
        }
    }
      

  5.   

    if(nCurCol == 6)//到6满一行,需要加行并重新初始nCurCol应该 nCurCol == 7谢谢鹦鹉大哥了!!我刚刚才想起来怎么算了,算法没有你的精简,比你的还麻烦。主要的是考虑的太多了,
    当时想的是,星期几不固定,还有就是日期也不固定等等吧,考虑的太多了!!算法就十分麻烦了!!应该多想大哥学习了!