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

ViewResBase.cpp 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. // ViewResBase.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "CTI.h"
  5. #include "ViewResBase.h"
  6. #include "DisplayWnd.h"
  7. // CViewResBase
  8. IMPLEMENT_DYNAMIC(CViewResBase, CListCtrl)
  9. CViewResBase::CViewResBase(void)
  10. {
  11. }
  12. CViewResBase::~CViewResBase(void)
  13. {
  14. }
  15. /*****************************************************************
  16. **【函数名称】 _indexItem
  17. **【函数功能】 索引资源
  18. **【参数】
  19. **【返回值】
  20. ****************************************************************/
  21. int CViewResBase::_indexItem( UINT ResId )
  22. {
  23. int Count = GetItemCount();
  24. for (int i=0; i < Count; ++i)
  25. {
  26. if (GetItemData(i) == ResId)
  27. return i;
  28. }
  29. return -1;
  30. }
  31. /*****************************************************************
  32. **【函数名称】 _addRes
  33. **【函数功能】 向List中添加资源
  34. **【参数】
  35. **【返回值】
  36. ****************************************************************/
  37. int CViewResBase::_addRes( UINT ResId )
  38. {
  39. int Index = GetItemCount();
  40. CString strResID;
  41. strResID.Format(_T("%d"), ResId);
  42. Index = InsertItem(Index, strResID);
  43. SetItemData(Index, ResId);
  44. return Index;
  45. }
  46. /*****************************************************************
  47. **【函数名称】 _delRes
  48. **【函数功能】 删除资源
  49. **【参数】
  50. **【返回值】
  51. ****************************************************************/
  52. void CViewResBase::_delRes( UINT ResId )
  53. {
  54. int Index = _indexItem(ResId);
  55. if (Index != -1)
  56. {
  57. // 界面删除
  58. DeleteItem(Index);
  59. }
  60. }
  61. /*****************************************************************
  62. **【函数名称】 create
  63. **【函数功能】 控件初始化
  64. **【参数】
  65. **【返回值】
  66. ****************************************************************/
  67. bool CViewResBase::create( CDisplayWnd* pWnd, UINT PanId, UINT ListId )
  68. {
  69. ASSERT(pWnd != NULL);
  70. CString Name;
  71. Name.LoadString(PanId);
  72. // 创建pane
  73. if (!m_Pane.Create(Name, pWnd, CRect(0, 0, 400, 400), TRUE, PanId,
  74. WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP | CBRS_FLOAT_MULTI))
  75. {
  76. TRACE0("创建设备资源窗口失败");
  77. return false;
  78. }
  79. m_Pane.EnableDocking(CBRS_ALIGN_ANY);
  80. //创建控件
  81. if(!Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_REPORT | LVS_SORTASCENDING,
  82. CRect(0, 0, 0, 0), &m_Pane, ListId))
  83. {
  84. TRACE0("创建设备资源控件失败\n");
  85. return false;
  86. }
  87. SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
  88. InsertColumn(COLUMN_RES_ID, _T("资源ID"), LVCFMT_LEFT, 130);
  89. InsertColumn(COLUMN_RES_STATE, _T("状态"), LVCFMT_LEFT, 130);
  90. InsertColumn(COLUMN_RES_CALLER, _T("主叫"), LVCFMT_LEFT, 130);
  91. InsertColumn(COLUMN_RES_CALLEE, _T("被叫"), LVCFMT_LEFT, 130);
  92. InsertColumn(COLUMN_RES_TIME, _T("发生时间"), LVCFMT_LEFT, 130);
  93. pWnd->OnNewPane(&m_Pane);
  94. return true;
  95. }
  96. /*****************************************************************
  97. **【函数名称】 onResDetail
  98. **【函数功能】 资源明细的处理函数
  99. **【参数】
  100. **【返回值】
  101. ****************************************************************/
  102. void CViewResBase::onResDetail( EventResDetail *pResDetail )
  103. {
  104. ASSERT(pResDetail != NULL);
  105. UINT ResId = pResDetail->nResID;
  106. if (_indexItem(ResId) == -1)
  107. _addRes(ResId);
  108. }
  109. /*****************************************************************
  110. **【函数名称】 onResState
  111. **【函数功能】 资源状态处理函数
  112. **【参数】
  113. **【返回值】
  114. ****************************************************************/
  115. void CViewResBase::onResState( EventResStatus *pResStatus )
  116. {
  117. ASSERT(pResStatus != NULL);
  118. int Index = _indexItem(pResStatus->nResID);
  119. // 未找到指定资源,则创建该资源
  120. if (Index == -1)
  121. Index = _addRes(pResStatus->nResID);
  122. ASSERT(Index != -1);
  123. CString Data;
  124. _mapStateToString(pResStatus->nState, Data);
  125. SetItemText(Index, COLUMN_RES_STATE, Data);
  126. SetItemText(Index, COLUMN_RES_CALLER, pResStatus->szCallerNum);
  127. SetItemText(Index, COLUMN_RES_CALLEE, pResStatus->szCalleeNum);
  128. CTime Time = CTime::GetCurrentTime();
  129. Data = Time.Format(_T("%H:%M:%S"));
  130. SetItemText(Index, COLUMN_RES_TIME, Data);
  131. }
  132. /*****************************************************************
  133. **【函数名称】 newSize
  134. **【函数功能】 调整控件大小
  135. **【参数】
  136. **【返回值】
  137. ****************************************************************/
  138. void CViewResBase::newSize( CRect& Rect )
  139. {
  140. if(IsWindow(GetSafeHwnd()))
  141. SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
  142. }
  143. /*****************************************************************
  144. **【函数名称】 showTogether
  145. **【函数功能】 Tab模式显示控件
  146. **【参数】
  147. **【返回值】
  148. ****************************************************************/
  149. void CViewResBase::showTogether( CViewResBase* pView )
  150. {
  151. ASSERT(pView != NULL);
  152. m_Pane.AttachToTabWnd(&pView->m_Pane, DM_SHOW, TRUE);
  153. }
  154. BEGIN_MESSAGE_MAP(CViewResBase, CListCtrl)
  155. END_MESSAGE_MAP()
  156. // CViewResBase 消息处理程序