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

ViewRes.cpp 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #include "StdAfx.h"
  2. #include "ViewRes.h"
  3. #include "DisplayWnd.h"
  4. #include "ViewMgr.h"
  5. #include "resource.h"
  6. IMPLEMENT_DYNAMIC(CViewRes, CListCtrl)
  7. CViewRes::CViewRes(void)
  8. {
  9. }
  10. CViewRes::~CViewRes(void)
  11. {
  12. }
  13. BEGIN_MESSAGE_MAP(CViewRes, CListCtrl)
  14. ON_NOTIFY_REFLECT(NM_CLICK, &CViewRes::OnNMClick)
  15. END_MESSAGE_MAP()
  16. /*****************************************************************
  17. **【函数名称】 create
  18. **【函数功能】 控件初始化
  19. **【参数】
  20. **【返回值】
  21. ****************************************************************/
  22. bool CViewRes::create( CDisplayWnd* pWnd )
  23. {
  24. ASSERT(pWnd != NULL);
  25. CString Name;
  26. Name.LoadString(IDS_STR_VIEW_RES);
  27. // 创建pane
  28. if (!m_Pane.Create(Name, pWnd, CRect(0, 0, 100, 100), TRUE, IDS_STR_VIEW_RES,
  29. WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
  30. {
  31. TRACE0("创建资源窗口失败");
  32. return false;
  33. }
  34. m_Pane.EnableDocking(CBRS_ALIGN_ANY);
  35. //创建控件
  36. if(!Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_ICON | LVS_ALIGNTOP | LVS_SINGLESEL,
  37. CRect(0, 0, 0, 0), &m_Pane, IDC_LIST_RES))
  38. {
  39. TRACE0("创建资源列表控件失败\n");
  40. return false;
  41. }
  42. // 设置关联图标
  43. CImageList imgList;
  44. imgList.Create(32, 32, ILC_MASK|ILC_COLOR32, 3, 1);
  45. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_EXTEN));
  46. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_TRUNK));
  47. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_VOIP));
  48. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_IVR));
  49. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_MEETING));
  50. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FAX));
  51. SetImageList(&imgList, TVSIL_NORMAL);
  52. imgList.Detach();
  53. pWnd->OnNewPane(&m_Pane);
  54. return true;
  55. }
  56. /*****************************************************************
  57. **【函数名称】 newSize
  58. **【函数功能】 调整控件大小
  59. **【参数】
  60. **【返回值】
  61. ****************************************************************/
  62. void CViewRes::newSize( CRect& Rect )
  63. {
  64. if(IsWindow(GetSafeHwnd()))
  65. SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
  66. }
  67. /*****************************************************************
  68. **【函数名称】 newRes
  69. **【函数功能】 新增资源类型
  70. **【参数】
  71. **【返回值】
  72. ****************************************************************/
  73. void CViewRes::newRes( UINT ResType )
  74. {
  75. int Count = GetItemCount();
  76. switch(ResType)
  77. {
  78. case DEV_RES_TYPE_EXT:
  79. SetItemData(InsertItem(Count, _T("分机资源"), 0), ResType);
  80. break;
  81. case DEV_RES_TYPE_TRUNK:
  82. SetItemData(InsertItem(Count, _T("中继资源"), 1), ResType);
  83. break;
  84. case DEV_RES_TYPE_VOIP:
  85. SetItemData(InsertItem(Count, _T("VOIP资源"), 2), ResType);
  86. break;
  87. case DEV_RES_TYPE_IVR:
  88. SetItemData(InsertItem(Count, _T("IVR线路资源"), 3), ResType);
  89. break;
  90. case DEV_RES_TYPE_CONFERENCE:
  91. SetItemData(InsertItem(Count, _T("会议资源"), 4), ResType);
  92. break;
  93. case DEV_RES_TYPE_FAX:
  94. SetItemData(InsertItem(Count, _T("传真资源"), 5), ResType);
  95. break;
  96. }
  97. }
  98. void CViewRes::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
  99. {
  100. LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
  101. // TODO: 在此添加控件通知处理程序代码
  102. if(pNMItemActivate->iItem != -1)
  103. {
  104. UINT ResType = GetItemData(pNMItemActivate->iItem);
  105. CViewMgr::GetInstance().showResView(ResType);
  106. SetItemState(pNMItemActivate->iItem, LVIS_SELECTED, LVIF_STATE);
  107. *pResult = 0;
  108. }
  109. }