如题,单文档多视图应用程序,
ListView设置:
---------------------------------------------------------
CListCtrl& theList=GetListCtrl();
theList.SetExtendedStyle(LVS_REPORT|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
theList.ModifyStyle(LVS_TYPEMASK,LVS_REPORT&LVS_TYPEMASK);
----------------------------------------------------------------
ListView列:
---------------------------------------------------------------
CListCtrl& theList=GetListCtrl();
theList.InsertColumn(0,"ID",LVCFMT_LEFT,30);
theList.InsertColumn(1,"日期",LVCFMT_LEFT,60);
theList.InsertColumn(2,"时间",LVCFMT_LEFT,60);
theList.InsertColumn(3,"日志内容",LVCFMT_LEFT,500);
插入行:
-----------------------------------------------------------------
CListCtrl& theList=GetListCtrl();
int iLogNum=theList.GetItemCount();/////////////////////出错处!!!!
CString str;
int aa=theList.InsertItem(iLogNum,itoa(iLogNum,str.GetBuffer(10),10));
theList.SetItemText(aa,1,CTime::GetCurrentTime().Format("%Y-%m-%d"));
theList.SetItemText(aa,2,CTime::GetCurrentTime().Format("%H:%M:%S"));
theList.SetItemText(aa,3,content);
请指教,不胜感激!!

解决方案 »

  1.   

    多视图?不要搞错了是哪个view哦?
      

  2.   

    试试这个那ListView_GetItemCount(theList.GetSafeHwnd());
      

  3.   

    to lixiaosan(小三):
    只有两个视图,应该没有搞错
    改为:
    int iLogNum=ListView_GetItemCount(theList.GetSafeHwnd());
    后,本句通过,但是在INSERTITEM的时候出错!
      

  4.   

    没有显示
    ??标题显示了吗就是theList.InsertColumn(0,"ID",LVCFMT_LEFT,30);
    theList.InsertColumn(1,"日期",LVCFMT_LEFT,60);
    theList.InsertColumn(2,"时间",LVCFMT_LEFT,60);
    theList.InsertColumn(3,"日志内容",LVCFMT_LEFT,500);这个有吗??
      

  5.   

    再把我程序的思路说一下,请高手指点!
    程序中使用两个视图,分别在两个类中,实现用菜单实现两个视图的切换.
    以上函数是在第二个视图中,在第一视图类中好像是可以用GetItemCount()的,很奇怪,两个视图结构基本上是完全一致的啊
    请赐教!~~~~~
      

  6.   

    to handsomerun(毛毛) :
    标题正常显示!!
      

  7.   

    发现问题原因,但不知如何解决,请各位达人再来关注一下吧!~~先谢了
    问题原因是:使用InsertItem()在初始化LISTVIEW之前,因此产生错误,但是不知道如何解决,我使用了两个视图,view1和view2,我在VIEW1的OnInitialUpdate()中向VIEW2中插入数据,但此时VIEW2尚未初始化,因此出错,请问向VIEW2插入数据的代码应该写在VIEW1类的哪个函数中??语文学得不好,不知道表达得够不够清楚,请大侠指教~~~
      

  8.   

    那么能不能在VIEW2在OnInitialUpdate中,调用view1中的那个初试化listview的函数呢???
      

  9.   

    to handsomerun(毛毛):
    我也有这个想法,现在正在尝试,但总觉得这样不能解决根本问题,假如我有三个视图,那不是要在第三个视图的OnInitialUpdate中调用吗?觉得有点太被动了!
      

  10.   

    你这个view2是再哪创建的呢??
    因为你的view1和view2是应该没有联系的(应该不会是在view1中创建view2的吧),或者说,view1是无法知道view2是什么时候创建的
    只有创建view2的那个窗口,是可以知道view2是啥时候创建的啊那么这样的话,你用view1去给view2添加
    ,就有可能view2还没有创建好
    除非你在创建view2的时候,告诉view1,那是可以的啊
      

  11.   

    to handsomerun(毛毛):
    VIEW1和VIEW2确实是没有什么关系的
    那如何在VIEW2创建后给告诉VIEW1呢?
      

  12.   

    你还可以放在调用view1,view2的主框架里面做这些listview的插入工作
    这也是一个办法反正你主框架里面有view1,view2的对象的,操作应该也是蛮简单的啊