ColorListCtrl.cpp
上传用户:tianheyiqi
上传日期:2010-04-16
资源大小:282k
文件大小:2k
源码类别:

外挂编程

开发平台:

Visual C++

  1. // ColorListCtrl.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ColorListCtrl.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CColorListCtrl
  12. CColorListCtrl::CColorListCtrl()
  13. {
  14. }
  15. CColorListCtrl::~CColorListCtrl()
  16. {
  17. }
  18. BEGIN_MESSAGE_MAP(CColorListCtrl, CListCtrl)
  19. //{{AFX_MSG_MAP(CColorListCtrl)
  20. //}}AFX_MSG_MAP
  21. ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomdrawMyList)
  22. END_MESSAGE_MAP()
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CColorListCtrl message handlers
  25. void CColorListCtrl::OnCustomdrawMyList (NMHDR* pNMHDR, LRESULT* pResult)
  26. {
  27. NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
  28. if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
  29. {
  30.         *pResult = CDRF_NOTIFYITEMDRAW;
  31. }
  32.     else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
  33. {
  34.         // This is the notification message for an item.  We'll request
  35.         // notifications before each subitem's prepaint stage.
  36.         *pResult = CDRF_NOTIFYSUBITEMDRAW;
  37.         
  38. int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );
  39. for (int i = m_ArrayColorInfo.GetSize() - 1; i >= 0 ; --i)
  40. {
  41. if (nItem == m_ArrayColorInfo[i].nIndex)
  42. {
  43. pLVCD->clrText = m_ArrayColorInfo[i].textColor;
  44. pLVCD->clrTextBk = m_ArrayColorInfo[i].bkColor;
  45. return;
  46. }
  47. }
  48.         // Tell Windows to paint the control itself.
  49.         *pResult = CDRF_DODEFAULT;
  50. }
  51. }
  52. void CColorListCtrl::SetRowColor(int nIndex, COLORREF bkColor, COLORREF textColor)
  53. {
  54. m_ColorInfo.nIndex = nIndex;
  55. m_ColorInfo.bkColor = bkColor;
  56. m_ColorInfo.textColor = textColor;
  57. m_ArrayColorInfo.Add(m_ColorInfo);
  58. }