m_listValue数组是动态定义的,如“m_listValue= new CListCtrl[5]”,为的是动态创建listcontrol控件。
创建控件代码是:
for (int i=0;i<item;i++)
{
m_listValue[i].Create(WS_VISIBLE|LVS_EX_GRIDLINES|LVS_SINGLESEL|LVS_ALIGNTOP,CRect(130,0,700,350),this,i+101);
m_listValue[i].SetExtendedStyle(LVS_EX_BORDERSELECT|LVS_REPORT|LVS_EX_GRIDLINES );
m_listValue[i].SetTextColor(RGB(0,0,255));
m_listValue[i].InsertColumn(1,"时 间",LVCFMT_CENTER,160);
m_listValue[i].InsertColumn(2,"数据(m)",LVCFMT_CENTER,130);
m_listValue[i].InsertColumn(3,"运行状态",LVCFMT_CENTER,100);
m_listValue[i].InsertColumn(4,"备 注",LVCFMT_CENTER,164);
}
程序刚开始运行的时候没有问题,运行大概了3个小时,就出现错误。
错误的位置是:for (int i=0;i < item;i++)
{
if (m_LValue[i].idport == port)
{
CString strTm = tm.Format("%Y-%m-%d %H:%M:%S");
m_listValue[i].InsertItem(0,strTm); ///错误出现这一句,说m_listValue[i],找不到地址,这是为什么
m_listValue[i].SetItemText(0, 1, strValue);
m_listValue[i].SetItemText(0, 2, "正常");
m_listValue[i].SetItemText(0, 3, posNote);
break;
}
}错误语句:
m_listValue[i].InsertItem(0,strTm);
提示找不到地址m_listValue = 0x010a0d46 {CListCtrl hWnd=???}
创建控件代码是:
for (int i=0;i<item;i++)
{
m_listValue[i].Create(WS_VISIBLE|LVS_EX_GRIDLINES|LVS_SINGLESEL|LVS_ALIGNTOP,CRect(130,0,700,350),this,i+101);
m_listValue[i].SetExtendedStyle(LVS_EX_BORDERSELECT|LVS_REPORT|LVS_EX_GRIDLINES );
m_listValue[i].SetTextColor(RGB(0,0,255));
m_listValue[i].InsertColumn(1,"时 间",LVCFMT_CENTER,160);
m_listValue[i].InsertColumn(2,"数据(m)",LVCFMT_CENTER,130);
m_listValue[i].InsertColumn(3,"运行状态",LVCFMT_CENTER,100);
m_listValue[i].InsertColumn(4,"备 注",LVCFMT_CENTER,164);
}
程序刚开始运行的时候没有问题,运行大概了3个小时,就出现错误。
错误的位置是:for (int i=0;i < item;i++)
{
if (m_LValue[i].idport == port)
{
CString strTm = tm.Format("%Y-%m-%d %H:%M:%S");
m_listValue[i].InsertItem(0,strTm); ///错误出现这一句,说m_listValue[i],找不到地址,这是为什么
m_listValue[i].SetItemText(0, 1, strValue);
m_listValue[i].SetItemText(0, 2, "正常");
m_listValue[i].SetItemText(0, 3, posNote);
break;
}
}错误语句:
m_listValue[i].InsertItem(0,strTm);
提示找不到地址m_listValue = 0x010a0d46 {CListCtrl hWnd=???}
if(m_listValue[i].m_hWnd != NULL)
m_listValue[i].deleteObject();
m_listValue[i].Create(...);
另外
你是不是频繁的调用了m_listValue= new CListCtrl[5]