Esempio n. 1
0
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));
				}
			}
		}
	}
}