// CheckServerView.cpp : implementation of the CCheckServerView class // #include "stdafx.h" #include "CheckServer.h" //#include "CheckServerDoc.h" #include "CheckServerView.h" #include "..\\Common\\LCLayout.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif enum eClientMessagesView { MESSAGESVIEW_COL_TIME = 0, MESSAGESVIEW_COL_NAME, MESSAGESVIEW_COL_MESSAGE, }; ///////////////////////////////////////////////////////////////////////////// // CCheckServerView IMPLEMENT_DYNCREATE(CCheckServerView, CListView) BEGIN_MESSAGE_MAP(CCheckServerView, CListView) //{{AFX_MSG_MAP(CCheckServerView) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCheckServerView construction/destruction CCheckServerView::CCheckServerView() { // TODO: add construction code here } CCheckServerView::~CCheckServerView() { } BOOL CCheckServerView::PreCreateWindow(CREATESTRUCT& cs) { cs.style |= LVS_REPORT; cs.style |= LVS_SHOWSELALWAYS; cs.style |= LVS_SINGLESEL; return CListView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CCheckServerView diagnostics #ifdef _DEBUG void CCheckServerView::AssertValid() const { CListView::AssertValid(); } void CCheckServerView::Dump(CDumpContext& dc) const { CListView::Dump(dc); } /* CCheckServerDoc* CCheckServerView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCheckServerDoc))); return (CCheckServerDoc*)m_pDocument; } */ #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CCheckServerView message handlers void CCheckServerView::OnPaint() { CListCtrl& lc = GetListCtrl(); Default(); if (!lc.GetItemCount()) { CDC* pDC = GetDC(); int nSavedDC = pDC->SaveDC(); CRect rc; GetClientRect(&rc); CHeaderCtrl* pHC; pHC = lc.GetHeaderCtrl(); if (pHC != NULL) { CRect rcH; pHC->GetItemRect(0, &rcH); rc.top += rcH.bottom; } pDC->FillRect(rc, &CBrush(::GetSysColor(COLOR_WINDOW))); pDC->SetBkMode(TRANSPARENT); pDC->SelectStockObject(ANSI_VAR_FONT); pDC->DrawText(CString((LPCSTR)IDS_EMPTY_LIST), rc, DT_CENTER|DT_WORDBREAK|DT_NOPREFIX| DT_NOCLIP|DT_VCENTER|DT_SINGLELINE); pDC->RestoreDC(nSavedDC); ReleaseDC(pDC); } } int CCheckServerView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CListView::OnCreate(lpCreateStruct) == -1) return -1; CString szBuf; CListCtrl& lc = GetListCtrl(); lc.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES); // insert columns lc.InsertColumn(MESSAGESVIEW_COL_TIME, "½Ã°£", LVCFMT_LEFT, 130); lc.InsertColumn(MESSAGESVIEW_COL_NAME, "À̸§", LVCFMT_LEFT, 130); lc.InsertColumn(MESSAGESVIEW_COL_MESSAGE, "³»¿ë", LVCFMT_LEFT, 280); CLCLayout::RestoreLayout(&lc, "CheckServerView"); return 0; } void CCheckServerView::OnDestroy() { CLCLayout::SaveLayout(&GetListCtrl(), "CheckServerView"); CListView::OnDestroy(); } void CCheckServerView::UpdateCols() { CString szBuf; LVCOLUMN pCol; CListCtrl& lc = GetListCtrl(); ZeroMemory(&pCol, sizeof(LVCOLUMN)); pCol.mask = LVCF_TEXT; szBuf = "½Ã°£"; pCol.cchTextMax = szBuf.GetLength(); pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax); szBuf.ReleaseBuffer(); lc.SetColumn(MESSAGESVIEW_COL_TIME, &pCol); szBuf = "À̸§"; pCol.cchTextMax = szBuf.GetLength(); pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax); szBuf.ReleaseBuffer(); lc.SetColumn(MESSAGESVIEW_COL_NAME, &pCol); szBuf = "³»¿ë"; pCol.cchTextMax = szBuf.GetLength(); pCol.pszText = szBuf.GetBuffer(pCol.cchTextMax); szBuf.ReleaseBuffer(); lc.SetColumn(MESSAGESVIEW_COL_MESSAGE, &pCol); Invalidate(); } void CCheckServerView::ClearView() { CListCtrl& lc = GetListCtrl(); lc.DeleteAllItems(); } void CCheckServerView::AddMessage(CString szTime, CString szName, CString szMessage) { CListCtrl& lc = GetListCtrl(); lc.InsertItem(MESSAGESVIEW_COL_TIME, szTime, 0); LV_ITEM lvi2; lvi2.mask = LVIF_TEXT;// | LVIF_IMAGE; lvi2.iItem = MESSAGESVIEW_COL_TIME; //item to set lvi2.iSubItem = MESSAGESVIEW_COL_NAME; lvi2.pszText = szName.GetBuffer(szName.GetLength()); szName.ReleaseBuffer(); lvi2.cchTextMax = szName.GetLength(); //lvi2.iImage = uSignIcon == -1 ? 2 : uSignIcon + 3; //image index lc.SetItem(&lvi2); LV_ITEM lvi3; lvi3.mask = LVIF_TEXT;// | LVIF_IMAGE; lvi3.iItem = MESSAGESVIEW_COL_TIME; //item to set lvi3.iSubItem = MESSAGESVIEW_COL_MESSAGE; lvi3.pszText = szMessage.GetBuffer(szMessage.GetLength()); szMessage.ReleaseBuffer(); lvi3.cchTextMax = szMessage.GetLength(); //lvi3.iImage = 1; //image index lc.SetItem(&lvi3); }