TreeListCtrl.cpp
上传用户:yangzi5763
上传日期:2007-01-02
资源大小:239k
文件大小:4k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /************************************
  2.   REVISION LOG ENTRY
  3.   Revision By: Mihai Filimon
  4.   Revised on 12/6/98 11:45:03
  5.   Comments: TreeListCtrl.cpp : implementation file
  6.  ************************************/
  7. #include "stdafx.h"
  8. #include "xpropertieswnd.h"
  9. #include "TreeListCtrl.h"
  10. #include "ControlsWnd.h"
  11. #ifdef _DEBUG
  12. #define new DEBUG_NEW
  13. #undef THIS_FILE
  14. static char THIS_FILE[] = __FILE__;
  15. #endif
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CTreeListCtrl
  18. // Function name : CTreeListCtrl::CTreeListCtrl
  19. // Description     : default constructor
  20. // Return type : 
  21. CTreeListCtrl::CTreeListCtrl()
  22. {
  23. m_nColumnName = -1;
  24. m_nColumnValue = -1;
  25. m_nColumnGroup = -1;
  26. }
  27. // Function name : CTreeListCtrl::~CTreeListCtrl
  28. // Description     : virtual destructor
  29. // Return type : 
  30. CTreeListCtrl::~CTreeListCtrl()
  31. {
  32. }
  33. BEGIN_MESSAGE_MAP(CTreeListCtrl, CListCtrl)
  34. //{{AFX_MSG_MAP(CTreeListCtrl)
  35. // NOTE - the ClassWizard will add and remove mapping macros here.
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CTreeListCtrl message handlers
  40. // Function name : CTreeListCtrl::Init
  41. // Description     : Called
  42. // Return type : void 
  43. BOOL CTreeListCtrl::Init(CListCtrl* pParent)
  44. {
  45. if (Create(WS_CHILD, CRect(0,0,0,0), pParent, 0))
  46. {
  47. m_nColumnName  = InsertColumn(0, _T("Name"));
  48. m_nColumnValue = InsertColumn(1, _T("Value"));
  49. m_nColumnGroup = InsertColumn(2, _T("Group"));
  50. return TRUE;
  51. }
  52. return FALSE;
  53. }
  54. // Function name : CTreeListCtrl::OnInsertItemVrt
  55. // Description     : 
  56. // Return type : int 
  57. // Argument         : int nItem
  58. // Argument         : LPCTSTR lpszItemName
  59. // Argument         : LPARAM lParam
  60. int CTreeListCtrl::OnInsertItemVrt(int nItem, LPCTSTR lpszItemName, LPARAM lParam, LPCTSTR lpszGroup)
  61. {
  62. int nResult = InsertItem(nItem, _T(""));
  63. if (nResult >= 0)
  64. {
  65. SetItemText(nResult, m_nColumnName, lpszItemName);
  66. SetItemText(nResult, m_nColumnGroup, lpszGroup);
  67. SetItemData(nResult, lParam);
  68. }
  69. return nResult;
  70. }
  71. // Function name : CTreeListCtrl::UpdateGroup
  72. // Description     : Update array with all id of group lpszGroupName
  73. // Return type : void 
  74. // Argument         : CControlsWnd_CGroup* pGroup
  75. // Argument         : LPCTSTR lpszGroupName
  76. void CTreeListCtrl::UpdateGroup(CControlsWnd_CGroup* pGroup, LPCTSTR lpszGroupName)
  77. {
  78. TArrayIDItem* pArray = pGroup->GetChilds();
  79. ASSERT (pArray);
  80. pArray->RemoveAll();
  81. int n = GetItemCount();
  82. for (int i = 0; i < n; i++)
  83. if (GetItemText(i, m_nColumnGroup).CompareNoCase(lpszGroupName) == 0)
  84. pArray->Add(i);
  85. }
  86. // Function name : CTreeListCtrl::GetName
  87. // Description     : Return the name of item nItem
  88. // Return type : CString 
  89. // Argument         : int nItem
  90. CString CTreeListCtrl::GetName(int nItem)
  91. {
  92. return GetItemText(nItem, m_nColumnName);
  93. }
  94. // Function name : CTreeListCtrl::GetValue
  95. // Description     : Return the value of item nItem
  96. // Return type : CString 
  97. // Argument         : int nItem
  98. CString CTreeListCtrl::GetValue(int nItem)
  99. {
  100. return GetItemText(nItem, m_nColumnValue);
  101. }
  102. // Function name : CTreeListCtrl::GetGroup
  103. // Description     : Return the group name of nItem
  104. // Return type : CString 
  105. // Argument         : int nItem
  106. CString CTreeListCtrl::GetGroup(int nItem)
  107. {
  108. return GetItemText(nItem, m_nColumnGroup);
  109. }
  110. // Function name : CTreeListCtrl::GetUserData
  111. // Description     : get the user data of item nItem
  112. // Return type : DWORD 
  113. // Argument         : int nItem
  114. DWORD CTreeListCtrl::GetUserData(int nItem)
  115. {
  116. return GetItemData(nItem);
  117. }
  118. // Function name : CTreeListCtrl::SetValue
  119. // Description     : Save the value of this
  120. // Return type : CString 
  121. // Argument         : int nItem
  122. void CTreeListCtrl::SetValue(int nItem, LPCTSTR lpszValue)
  123. {
  124. SetItemText(nItem, m_nColumnValue, lpszValue);
  125. }