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

ViewRes.cpp 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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_LINE));
  46. imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FAX));
  47. SetImageList(&imgList, TVSIL_NORMAL);
  48. imgList.Detach();
  49. SetItemData(InsertItem(0, _T("线路资源"), 0), IDI_ICON_LINE);
  50. SetItemData(InsertItem(1, _T("传真资源"), 0), IDI_ICON_FAX);
  51. pWnd->OnNewPane(&m_Pane);
  52. return true;
  53. }
  54. /*****************************************************************
  55. **【函数名称】 newSize
  56. **【函数功能】 调整控件大小
  57. **【参数】
  58. **【返回值】
  59. ****************************************************************/
  60. void CViewRes::newSize( CRect& Rect )
  61. {
  62. if(IsWindow(GetSafeHwnd()))
  63. SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
  64. }
  65. void CViewRes::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
  66. {
  67. LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
  68. // TODO: 在此添加控件通知处理程序代码
  69. if(pNMItemActivate->iItem != -1)
  70. {
  71. UINT ResType = GetItemData(pNMItemActivate->iItem);
  72. if(ResType == IDI_ICON_LINE)
  73. CViewMgr::GetInstance().showLineView();
  74. else
  75. CViewMgr::GetInstance().showFaxView();
  76. SetItemState(pNMItemActivate->iItem, LVIS_SELECTED, LVIF_STATE);
  77. *pResult = 0;
  78. }
  79. }