void CWatcherWindow::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default CDialog::OnTimer(nIDEvent); if(!this->IsWindowVisible()) return; CguiconsoleDlg* dlg = static_cast<CguiconsoleDlg*>(theApp.m_pMainWnd); dlg->reqQueryWatcher(getCurrSelPath()); if(m_status.GetItemCount() == 1) { int nColumnCount = m_status.GetHeaderCtrl()->GetItemCount(); if(m_statusShow.GetItemCount() != nColumnCount) { m_statusShow.InsertColumn(0, L"WatcherName", LVCFMT_LEFT, 150); m_statusShow.InsertColumn(1, L"WatcherValue", LVCFMT_LEFT, 1000); m_statusShow.DeleteAllItems(); for (int i=0;i < nColumnCount; i++) { LVCOLUMN lvcol; WCHAR str[256]; memset(str, 0, 256); lvcol.mask = LVCF_TEXT|LVCF_WIDTH; lvcol.pszText = str; lvcol.cchTextMax = 256; lvcol.cx = i; m_status.GetColumn(i, &lvcol); m_statusShow.InsertItem(0, lvcol.pszText); } } for(int ii = 0; ii<m_status.GetHeaderCtrl()->GetItemCount(); ii++) { CString s = m_status.GetItemText(0, ii); LVCOLUMN lvcol; WCHAR str[256]; memset(str, 0, 256); lvcol.mask = LVCF_TEXT|LVCF_WIDTH; lvcol.pszText = str; lvcol.cchTextMax = 256; lvcol.cx = ii; m_status.GetColumn(ii, &lvcol); for(int iix = 0; iix < m_statusShow.GetItemCount(); iix++) { CString ss = m_statusShow.GetItemText(iix, 0); if(ss == lvcol.pszText) m_statusShow.SetItemText(iix, 1, s); } } } else { int nColumnCount = 0; if(m_status.GetHeaderCtrl()) { nColumnCount = m_status.GetHeaderCtrl()->GetItemCount(); if(m_statusShow.GetHeaderCtrl() == NULL || nColumnCount != m_statusShow.GetHeaderCtrl()->GetItemCount() || m_status.GetItemCount() != m_statusShow.GetItemCount()) { m_statusShow.DeleteAllItems(); if(m_statusShow.GetHeaderCtrl()) { int nColumnCount = m_statusShow.GetHeaderCtrl()->GetItemCount(); for (int i=0;i < nColumnCount;i++) { m_statusShow.DeleteColumn(0); } } for (int i=0;i < nColumnCount;i++) { LVCOLUMN lvcol; WCHAR str[256]; memset(str, 0, 256); lvcol.mask=LVCF_TEXT|LVCF_WIDTH; lvcol.pszText=str; lvcol.cchTextMax=256; lvcol.cx = i; m_status.GetColumn(i, &lvcol); addHeaderShow(lvcol.pszText); } } for(int i=0; i<m_status.GetItemCount(); i++) { if(i + 1 > m_statusShow.GetItemCount()) { m_statusShow.InsertItem(0, m_status.GetItemText(i, 0)); } for(int ii = 0; ii<m_status.GetHeaderCtrl()->GetItemCount(); ii++) { m_statusShow.SetItemText(i, ii, m_status.GetItemText(i, ii)); } } } } }