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

图形图象

开发平台:

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. // IEShellTreeView.cpp : implementation file
  18. #include "stdafx.h"
  19. #include "UIRes.h"
  20. #include "UIMessages.h"
  21. #include "IEShellTreeView.h"
  22. #ifdef _DEBUG
  23. #define new DEBUG_NEW
  24. #undef THIS_FILE
  25. static char THIS_FILE[] = __FILE__;
  26. #endif
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CIEShellTreeView
  29. IMPLEMENT_DYNCREATE(CIEShellTreeView,CUITreeView)
  30. CIEShellTreeView::CIEShellTreeView()
  31.  : CUITreeView(IDC_TREE_SHELL)
  32. {
  33. m_bPopulated = false;
  34. }
  35. CIEShellTreeView::~CIEShellTreeView()
  36. {
  37. }
  38. LPTVITEMDATA CIEShellTreeView::GetSelectedItemData()
  39. {
  40. HTREEITEM hItem = GetShellTreeCtrl().GetSelectedItem();
  41. LPTVITEMDATA ptvid=NULL;
  42. if (hItem)
  43. ptvid = (LPTVITEMDATA)GetShellTreeCtrl().GetItemData(hItem);
  44. return ptvid;
  45. }
  46. void CIEShellTreeView::OnInitialUpdate() 
  47. {
  48. CUITreeView::OnInitialUpdate();
  49. // TODO: Add your specialized code here and/or call the base class
  50. if (!m_bPopulated)
  51. {
  52. // GetShellTreeCtrl().SetComboBoxWnd(GetParentFrame()->GetSafeHwnd());
  53. PopulateTree( NULL );
  54. }
  55. }
  56. bool CIEShellTreeView::PopulateTree(LPCTSTR pszPath)
  57. {
  58. CIEShellTreeCtrl *pCtrl = (CIEShellTreeCtrl*)m_pTreeCtrl;
  59. m_bPopulated = pCtrl->LoadFolderItems(pszPath);
  60. return m_bPopulated;
  61. }
  62. void CIEShellTreeView::CreateTreeCtrl()
  63. {
  64. // TODO: Add your specialized code here and/or call the base class
  65. m_pTreeCtrl = new CIEShellTreeCtrl;
  66. }
  67. BEGIN_MESSAGE_MAP(CIEShellTreeView, CUITreeView)
  68. //{{AFX_MSG_MAP(CIEShellTreeView)
  69. ON_MESSAGE(WM_SETMESSAGESTRING,OnSetmessagestring)
  70. // NOTE - the ClassWizard will add and remove mapping macros here.
  71. //}}AFX_MSG_MAP
  72. END_MESSAGE_MAP()
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CIEShellTreeView message handlers
  75. void CIEShellTreeView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) 
  76. {
  77. if (bActivate && pDeactiveView != NULL)
  78. {
  79. // theApp.SwitchTab(CViewTabView::TAB_LIST_FOLDER);
  80. GetTreeCtrl().SetFocus();
  81. }
  82. CView::OnActivateView(bActivate, pActivateView, pDeactiveView);
  83. }
  84. LRESULT CIEShellTreeView::OnSetmessagestring(WPARAM wParam, LPARAM lParam)
  85. {
  86. CFrameWnd *pFrame = GetParentFrame();
  87. if (pFrame)
  88. return pFrame->SendMessage(WM_SETMESSAGESTRING,wParam,lParam);
  89. return 0;
  90. }