1,列表框的初始化。 初始化函数中: DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | /*LVS_EX_SUBITEMIMAGES |*/ //列表样式 m_List1.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); // LVS_EX_HEADERDRAGDROP | LVS_EX_TRACKSELECT; m_List1.InsertColumn(0,_T("xx"),LVCFMT_IMAGE|LVCFMT_LEFT);//列表的列标题 m_List1.InsertColumn(1,_T("xx")); m_List1.InsertColumn(2,_T("xx")); m_List1.InsertColumn(3,_T("xxx")); m_List1.InsertColumn(4,_T("xxx")); m_List1.InsertColumn(5,_T("xxx")); m_List1.InsertColumn(6,_T("xxxx")); m_List1.SetColumnWidth(0 ,220);//列宽 for(int j=1;j<7;j++) m_List1.SetColumnWidth(j ,80);//列宽设置 2,滚动条置于列表框的最下端。 //这是获取滚动条当前位置 //int visindex = m_List1.GetScrollPos(SB_VERT); //int posx = m_List1.GetScrollPos(SB_HORZ); //重新往CListCtrl里放入新数据 //完成后设置Scroll的位置 //m_List1.SetScrollPos(posx,visindex,1); // Ensure that the last item is visible. int nCount = m_List1.GetItemCount(); if (nCount > 0) m_List1.EnsureVisible(nCount-1, FALSE); 3,报警播放声音。 //显示到list1中。 //获取当前时间。 CTime Time; Time = CTime::GetCurrentTime(); CString Str = Time.Format("%Y.%m.%d. %I:%M:%S"); m_date=Str; if (m_recv1 < m_nd && m_recv2 < m_nd )//要根据实际情况修改 { } else { m_dataIsTrue="不合格"; //报警 //_variant_t vTim,vRsc,vRsb,vRsrsj; nItem=m_List1.InsertItem(0xffff,(_bstr_t)Str);//日期时间 m_List1.SetItem(nItem,1,1,(_bstr_t)qianhao,NULL,0,0,0);//对边距最大值 m_List1.SetItem(nItem,2,1,(_bstr_t)xianxing,NULL,0,0,0);//对边距中间值 m_List1.SetItem(nItem,3,1,(_bstr_t)m_recv3,NULL,0,0,0);//对边距最大值 m_List1.SetItem(nItem,4,1,(_bstr_t)m_recv2,NULL,0,0,0);//对边距中间值 m_List1.SetItem(nItem,5,1,(_bstr_t)m_recv1,NULL,0,0,0);//对边距最小值 m_List1.SetItem(nItem,6,1,(_bstr_t)m_dataIsTrue,NULL,0,0,0);//数据显示。 m_List1.SetItemColor(nItem, RGB(255,0,0)); //报警声音 //SetTimer(3,20000,NULL);// PlaySound((LPCTSTR)IDR_BEEP, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC); //PlaySound(L"air.wav",NULL,SND_FILENAME|SND_ASYNC); } UpdateData(false);