中间件标准版5.1git,去除基础模块

GridExten.cpp 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. // ExtenGrid.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "FirstStep.h"
  5. #include "GridExten.h"
  6. // CExtenGrid
  7. IMPLEMENT_DYNAMIC(CGridExten, CMFCPropertyGridCtrl)
  8. CGridExten::CGridExten()
  9. {
  10. }
  11. CGridExten::~CGridExten()
  12. {
  13. }
  14. /*****************************************************************
  15. **【函数名称】 __locate
  16. **【函数功能】 定位分机
  17. **【参数】
  18. **【返回值】
  19. ****************************************************************/
  20. CMFCPropertyGridProperty* CGridExten::__locate( UINT ExtenId )
  21. {
  22. for(int i = 0; i < GetPropertyCount(); ++i)
  23. {
  24. CMFCPropertyGridProperty* pExten = GetProperty(i);
  25. ASSERT(pExten != NULL);
  26. if(pExten->GetData() == ExtenId)
  27. return pExten;
  28. }
  29. return NULL;
  30. }
  31. /*****************************************************************
  32. **【函数名称】 init
  33. **【函数功能】 初始化
  34. **【参数】
  35. **【返回值】
  36. ****************************************************************/
  37. void CGridExten::init( void )
  38. {
  39. EnableHeaderCtrl(TRUE, _T("分机号"), _T("接入密码"));
  40. SetVSDotNetLook();
  41. CRect rect;
  42. GetClientRect(rect);
  43. HDITEM item;
  44. item.cxy = rect.Width() / 3;
  45. item.mask = HDI_WIDTH;
  46. GetHeaderCtrl().SetItem(0, &item);
  47. const ExtenMap& ExtMap = CConfig::GetInstance().extenMap();
  48. const ExtenMap::CPair* pPair = ExtMap.PGetFirstAssoc();
  49. while(pPair != NULL)
  50. {
  51. addExten(pPair->key, pPair->value);
  52. pPair = ExtMap.PGetNextAssoc(pPair);
  53. }
  54. }
  55. /*****************************************************************
  56. **【函数名称】 addExten
  57. **【函数功能】 添加分机
  58. **【参数】
  59. **【返回值】
  60. ****************************************************************/
  61. void CGridExten::addExten( UINT ExtenId, LPCTSTR Password )
  62. {
  63. CString StrExtenId;
  64. StrExtenId.Format(_T("%u"), ExtenId);
  65. CString StrPassword = _T("");
  66. if(Password != NULL)
  67. StrPassword = Password;
  68. CMFCPropertyGridProperty* pExten = __locate(ExtenId);
  69. if(pExten == NULL)
  70. {
  71. pExten = new CMFCPropertyGridProperty(StrExtenId, StrPassword, NULL, ExtenId);
  72. ASSERT(pExten != NULL);
  73. AddProperty(pExten);
  74. }
  75. else
  76. {
  77. if(Password != NULL)
  78. pExten->SetValue(Password);
  79. }
  80. }
  81. /*****************************************************************
  82. **【函数名称】 delExten
  83. **【函数功能】 删除分机
  84. **【参数】
  85. **【返回值】
  86. ****************************************************************/
  87. void CGridExten::delExten( UINT ExtenId )
  88. {
  89. CMFCPropertyGridProperty* pExten = __locate(ExtenId);
  90. if(pExten != NULL)
  91. DeleteProperty(pExten);
  92. }
  93. /*****************************************************************
  94. **【函数名称】 upload
  95. **【函数功能】 上传分机信息
  96. **【参数】
  97. **【返回值】
  98. ****************************************************************/
  99. void CGridExten::upload( void )
  100. {
  101. ExtenMap& ExtenMap = CConfig::GetInstance().extenMap();
  102. ExtenMap.RemoveAll();
  103. UINT ExtenId;
  104. CString Password;
  105. CMFCPropertyGridProperty* pExten = NULL;
  106. for (int i = 0; i < GetPropertyCount(); ++i)
  107. {
  108. pExten = GetProperty(i);
  109. ASSERT(pExten != NULL);
  110. sscanf_s(pExten->GetName(), "%u", &ExtenId);
  111. Password = pExten->GetValue();
  112. ExtenMap.SetAt(ExtenId, Password);
  113. }
  114. }
  115. BEGIN_MESSAGE_MAP(CGridExten, CMFCPropertyGridCtrl)
  116. END_MESSAGE_MAP()
  117. // CExtenGrid 消息处理程序