UIListView.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:4k
源码类别:

图形图象

开发平台:

Visual C++

  1. //*******************************************************************************
  2. // COPYRIGHT NOTES
  3. // ---------------
  4. // You may use this source code, compile or redistribute it as part of your application 
  5. // for free. You cannot redistribute it as a part of a software development 
  6. // library without the agreement of the author. If the sources are 
  7. // distributed along with the application, you should leave the original 
  8. // copyright notes in the source code without any changes.
  9. // This code can be used WITHOUT ANY WARRANTIES at your own risk.
  10. // 
  11. // For the latest updates to this code, check this site:
  12. // http://www.masmex.com 
  13. // after Sept 2000
  14. // 
  15. // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
  16. //*******************************************************************************
  17. // TabClientView.cpp : implementation file
  18. //
  19. #include "stdafx.h"
  20. #include "UIListView.h"
  21. #ifdef _DEBUG
  22. #define new DEBUG_NEW
  23. #undef THIS_FILE
  24. static char THIS_FILE[] = __FILE__;
  25. #endif
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CUIListView
  28. IMPLEMENT_DYNAMIC(CUIListView, CView)
  29. CUIListView::CUIListView(UINT nID) : m_nID(nID), m_pListCtrl(NULL)
  30. {
  31. m_Style = WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_SHOWSELALWAYS ;
  32. m_bDragDrop = true;
  33. }
  34. CUIListView::~CUIListView()
  35. {
  36. delete m_pListCtrl;
  37. }
  38. CUIODListCtrl &CUIListView::GetListCtrl()
  39. {
  40. ASSERT(m_pListCtrl);
  41. return *m_pListCtrl;
  42. }
  43. void CUIListView::CreateListCtrl()
  44. {
  45. m_pListCtrl = new CUIODListCtrl;
  46. GetListCtrl().SetDragDrop(m_bDragDrop);
  47. }
  48. BEGIN_MESSAGE_MAP(CUIListView, CView)
  49. //{{AFX_MSG_MAP(CUIListView)
  50. ON_WM_CREATE()
  51. ON_WM_SETFOCUS()
  52. ON_WM_SIZE()
  53. //}}AFX_MSG_MAP
  54. ON_MESSAGE(WM_APP_UPDATE_ALL_VIEWS, OnAppUpdateAllViews)
  55. END_MESSAGE_MAP()
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CUIListView drawing
  58. void CUIListView::OnDraw(CDC* pDC)
  59. {
  60. CDocument* pDoc = GetDocument();
  61. // TODO: add draw code here
  62. }
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CUIListView diagnostics
  65. #ifdef _DEBUG
  66. void CUIListView::AssertValid() const
  67. {
  68. CView::AssertValid();
  69. }
  70. void CUIListView::Dump(CDumpContext& dc) const
  71. {
  72. CView::Dump(dc);
  73. }
  74. #endif //_DEBUG
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CUIListView message handlers
  77. int CUIListView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  78. {
  79. if (CView::OnCreate(lpCreateStruct) == -1)
  80. return -1;
  81. CreateListCtrl();
  82. // TODO: Add your specialized creation code here
  83. USES_CONVERSION;
  84. GetListCtrl().SetSection(A2CT(GetRuntimeClass()->m_lpszClassName));
  85. GetListCtrl().ChangeStyle(m_Style);
  86. if (GetListCtrl().Create(m_Style,CRect(0,0,0,0),this,m_nID) == -1)
  87. return -1;
  88.   GetListCtrl().Init();
  89. return 0;
  90. }
  91. void CUIListView::OnSetFocus(CWnd* pOldWnd) 
  92. {
  93. CView::OnSetFocus(pOldWnd);
  94. // TODO: Add your message handler code here
  95. GetListCtrl().SetFocus();
  96. }
  97. void CUIListView::OnSize(UINT nType, int cx, int cy) 
  98. {
  99. CView::OnSize(nType, cx, cy);
  100. // TODO: Add your message handler code here
  101. if (GetListCtrl().GetSafeHwnd())
  102. GetListCtrl().MoveWindow(0,0,cx,cy);
  103. }
  104. LRESULT CUIListView::OnAppUpdateAllViews( WPARAM wParam, LPARAM lParam )
  105. {
  106. ASSERT(wParam);
  107. GetDocument()->UpdateAllViews(NULL,wParam,(CObject*)lParam);
  108. return 1L;
  109. }
  110. BOOL CUIListView::PreCreateWindow(CREATESTRUCT& cs) 
  111. {
  112. // TODO: Add your specialized code here and/or call the base class
  113. cs.lpszClass = AfxRegisterWndClass(
  114.   CS_DBLCLKS,                       
  115.   NULL,                             
  116.   NULL,                             
  117.   NULL); 
  118. ASSERT(cs.lpszClass);
  119. return CView::PreCreateWindow(cs);
  120. }