简单ListCtrl

来源:互联网 发布:天刀win10卡顿优化 编辑:程序博客网 时间:2024/05/17 05:00

InitCommonControls();

InitContextMenuManager();

InitShellManager();

 

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));

CMFCButton::EnableWindowsTheming();

 

class CMyListCtrl : public CMFCListCtrl

{

virtual COLORREF OnGetCellTextColor(int nRow, int nColum);

virtual COLORREF OnGetCellBkColor(int nRow, int nColum);

virtual HFONT OnGetCellFont(int nRow, int nColum, DWORD dwData = 0);

 

virtual int OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn);

 

public:

BOOL m_bColor;

BOOL m_bModifyFont;

};

 

 

COLORREF CMyListCtrl::OnGetCellTextColor(int nRow, int nColum)

{

if (!m_bColor)

{

return CMFCListCtrl::OnGetCellTextColor(nRow, nColum);

}

 

return(nRow % 2) == 0 ? RGB(128, 37, 0) : RGB(0, 0, 0);

}

 

COLORREF CMyListCtrl::OnGetCellBkColor(int nRow, int nColum)

{

if (!m_bColor)

{

return CMFCListCtrl::OnGetCellBkColor(nRow, nColum);

}

 

if (m_bMarkSortedColumn && nColum == m_iSortedColumn)

{

return(nRow % 2) == 0 ? RGB(233, 221, 229) : RGB(176, 218, 234);

}

 

return(nRow % 2) == 0 ? RGB(253, 241, 249) : RGB(196, 238, 254);

}

 

HFONT CMyListCtrl::OnGetCellFont(int nRow, int nColum, DWORD /*dwData* = 0*/)

{

if (!m_bModifyFont)

{

return NULL;

}

 

if (nColum == 2 &&(nRow >= 4 && nRow <= 8))

{

return afxGlobalData.fontDefaultGUIBold;

}

 

return NULL;

}

 

int CMyListCtrl::OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn)

{

CString strItem1 = GetItemText((int)(lParam1 < lParam2 ? lParam1 : lParam2), iColumn);

CString strItem2 = GetItemText((int)(lParam1 < lParam2 ? lParam2 : lParam1), iColumn);

 

if (iColumn == 0)

{

int nItem1 = _ttoi(strItem1);

int nItem2 = _ttoi(strItem2);

return(nItem1 < nItem2 ? -1 : 1);

}

else

{

int iSort = _tcsicmp(strItem1, strItem2);

return(iSort);

}

}

 

 

 

 

m_wndList.m_bColor = TRUE;

m_wndList.m_bModifyFont = TRUE;

 

m_wndList.SetRedraw(FALSE);

m_wndList.InsertColumn(0, _T("#"), LVCFMT_LEFT, 20);

m_wndList.InsertItem(i, str);

m_wndList.SetItemData(i, i);

m_wndList.SetItemText(i, nColumn, str);

m_wndList.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

m_wndList.EnableMarkSortedColumn();

m_wndList.SetRedraw(TRUE);

m_wndList.Invalidate();

m_wndList.UpdateWindow();

 

CString str = m_wndList.GetItemText(pNMItemActivate->iItem, 0);

str = m_wndList.GetItemText(pNMItemActivate->iItem, 1);

str = m_wndList.GetItemText(pNMItemActivate->iItem, 2);

CString str = m_wndList.GetItemText(m_wndList.GetNextItem(-1,LVNI_SELECTED),0);

 

 

char   sBuf[255]; 

LVCOLUMN   cl; 

cl.mask   =   LVCF_TEXT; 

cl.pszText   =   sBuf; 

cl.cchTextMax   =   255; 

m_wndList.GetColumn(phdr->iItem, &cl);

 

CString s = cl.pszText;