ListCtrlView.cpp
上传用户:weimei12
上传日期:2022-08-11
资源大小:185k
文件大小:3k
源码类别:

Email客户端

开发平台:

Visual C++

  1. // ListCtrlView.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "SimpleMail.h"
  5. #include "ListCtrlView.h"
  6. // CListCtrlView
  7. IMPLEMENT_DYNCREATE(CListCtrlView, CFormView)
  8. CListCtrlView::CListCtrlView()
  9. : CFormView(CListCtrlView::IDD)
  10. {
  11. }
  12. CListCtrlView::~CListCtrlView()
  13. {
  14. }
  15. void CListCtrlView::DoDataExchange(CDataExchange* pDX)
  16. {
  17. CFormView::DoDataExchange(pDX);
  18. DDX_Control(pDX, IDC_LIST, m_listCtrl);
  19. }
  20. BEGIN_MESSAGE_MAP(CListCtrlView, CFormView)
  21. ON_WM_SIZE()
  22. ON_NOTIFY(LVN_ITEMACTIVATE, IDC_LIST, &CListCtrlView::OnLvnItemActivateList)
  23. END_MESSAGE_MAP()
  24. // CListCtrlView diagnostics
  25. #ifdef _DEBUG
  26. void CListCtrlView::AssertValid() const
  27. {
  28. CFormView::AssertValid();
  29. }
  30. #ifndef _WIN32_WCE
  31. void CListCtrlView::Dump(CDumpContext& dc) const
  32. {
  33. CFormView::Dump(dc);
  34. }
  35. #endif
  36. #endif //_DEBUG
  37. // CListCtrlView message handlers
  38. void CListCtrlView::OnInitialUpdate()
  39. {
  40. CFormView::OnInitialUpdate();
  41. // TODO: Add your specialized code here and/or call the base class
  42. //SetDlgCtrlID(VIEW_LISTCTRL);
  43. CRect rect;
  44. GetClientRect(&rect);
  45. m_listCtrl.InsertColumn(0, _T("From"), LVCFMT_LEFT, rect.Width() / 4);
  46. m_listCtrl.InsertColumn(1, _T("Subject"), LVCFMT_LEFT, rect.Width() / 4);
  47. m_listCtrl.InsertColumn(2, _T("Date"), LVCFMT_LEFT, rect.Width() / 4);
  48. m_listCtrl.InsertColumn(3, _T("Size"), LVCFMT_LEFT, rect.Width() / 4);
  49. m_listCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_ONECLICKACTIVATE 
  50. | LVS_EX_FLATSB);//显示表格线等设置
  51. }
  52. void CListCtrlView::OnSize(UINT nType, int cx, int cy)
  53. {
  54. CFormView::OnSize(nType, cx, cy);
  55. // TODO: Add your message handler code here
  56. CFormView::ShowScrollBar(SB_VERT,FALSE);
  57. CFormView::ShowScrollBar(SB_HORZ,FALSE);
  58. if (GetSafeHwnd())
  59. {
  60. if (m_listCtrl.GetSafeHwnd())
  61. {
  62. CRect rect(0,0,cx,cy);
  63. m_listCtrl.MoveWindow(&rect);
  64. }
  65. }
  66. }
  67. void CListCtrlView::InsertRowItem(CString strFrom, CString strSubject, CString strDate, CString strSize)
  68. {
  69. LVITEM lvItem;
  70. lvItem.mask = LVIF_TEXT;
  71. lvItem.iItem = 0; 
  72. lvItem.iSubItem = 0;
  73. lvItem.pszText = strFrom.GetBuffer(strFrom.GetLength());
  74. int nRes = -2;
  75. nRes = m_listCtrl.InsertItem(&lvItem);
  76. strFrom.ReleaseBuffer();
  77. lvItem.iItem = nRes;
  78. lvItem.pszText = strSubject.GetBuffer(strSubject.GetLength());
  79. lvItem.iSubItem = 1;
  80. m_listCtrl.SetItem(&lvItem);
  81. strSubject.ReleaseBuffer();
  82. lvItem.iItem = nRes;
  83. lvItem.pszText = strDate.GetBuffer(strDate.GetLength());
  84. lvItem.iSubItem = 2;
  85. m_listCtrl.SetItem(&lvItem);
  86. strDate.ReleaseBuffer();
  87. lvItem.iItem = nRes;
  88. lvItem.pszText = strSize.GetBuffer(strSize.GetLength());
  89. lvItem.iSubItem = 3;
  90. m_listCtrl.SetItem(&lvItem);
  91. strSize.ReleaseBuffer();
  92. }
  93. BOOL CListCtrlView::PreCreateWindow(CREATESTRUCT& cs)
  94. {
  95. // TODO: Add your specialized code here and/or call the base class
  96. cs.style |= LVS_REPORT;
  97. return CFormView::PreCreateWindow(cs);
  98. }
  99. void CListCtrlView::OnLvnItemActivateList(NMHDR *pNMHDR, LRESULT *pResult)
  100. {
  101. LPNMITEMACTIVATE pNMIA = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
  102. // TODO: Add your control notification handler code here
  103. ::SendMessage(AfxGetMainWnd()->m_hWnd, WM_LIST_SELECTED, pNMIA->iItem, 0);
  104. *pResult = 0;
  105. }