SolutionExplorerPane.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:5k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // SolutionExplorerPane.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "GUI_VisualStudio.h"
  22. #include "SolutionExplorerPane.h"
  23. #ifdef _DEBUG
  24. #define new DEBUG_NEW
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CSolutionExplorerPane
  30. CSolutionExplorerPane::CSolutionExplorerPane()
  31. {
  32. }
  33. CSolutionExplorerPane::~CSolutionExplorerPane()
  34. {
  35. }
  36. BEGIN_MESSAGE_MAP(CSolutionExplorerPane, CWnd)
  37. //{{AFX_MSG_MAP(CSolutionExplorerPane)
  38. ON_WM_CREATE()
  39. ON_WM_SIZE()
  40. ON_COMMAND_RANGE(ID_SOLUTION_PROPERTIES, ID_SOLUTION_ADDNEWFOLDER, OnEmptyCommand)
  41. //}}AFX_MSG_MAP
  42. ON_WM_SETFOCUS()
  43. END_MESSAGE_MAP()
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CSolutionExplorerPane message handlers
  46. int CSolutionExplorerPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
  47. {
  48. if (CWnd::OnCreate(lpCreateStruct) == -1)
  49. return -1;
  50. VERIFY(m_wndToolBar.CreateToolBar(WS_TABSTOP|WS_VISIBLE|WS_CHILD|CBRS_TOOLTIPS, this));
  51. VERIFY(m_wndToolBar.LoadToolBar(IDR_PANE_SOLUTIONEXPLORER));
  52. if (m_wndSolutionView.GetSafeHwnd() == 0)
  53. {
  54. if (!m_wndSolutionView.Create( WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS,
  55. CRect(0,0,0,0), this, 0xFF ))
  56. {
  57. TRACE0( "Unable to create tree control.n" );
  58. return 0;
  59. }
  60. m_wndSolutionView.ModifyStyleEx(0, WS_EX_STATICEDGE);
  61. // load the tree images bitmap and add it to the image list.
  62. if (!CreateImageList(m_ilSolutionView, IDB_FILETREE))
  63. return 0;
  64. // Set the image list for the tree control.
  65. m_wndSolutionView.SetImageList( &m_ilSolutionView, TVSIL_NORMAL );
  66. // add the parent item, make it bold
  67. HTREEITEM htiParent = m_wndSolutionView.InsertItem(_T("Solution 'XtremeDemo': 1 project(s)"));
  68. HTREEITEM htiChild; // child item
  69. htiChild = m_wndSolutionView.InsertItem (_T("XtremeDemo Files"), 1, 1, htiParent);
  70. m_wndSolutionView.SetItemState (htiChild, TVIS_BOLD, TVIS_BOLD);
  71. // add the children of the parent item
  72. HTREEITEM hti = m_wndSolutionView.InsertItem(_T("Source Files"), 2, 3, htiChild);
  73. m_wndSolutionView.InsertItem(_T("ChildFrm.cpp"), 4, 4, hti);
  74. m_wndSolutionView.InsertItem(_T("MainFrm.cpp"), 4, 4, hti);
  75. m_wndSolutionView.InsertItem(_T("StdAfx.cpp"), 4, 4, hti);
  76. m_wndSolutionView.InsertItem(_T("XtremeDemo.cpp"), 4, 4, hti);
  77. m_wndSolutionView.InsertItem(_T("XtremeDemo.rc"), 4, 4, hti);
  78. m_wndSolutionView.InsertItem(_T("XtremeDemoDoc.cpp"), 4, 4, hti);
  79. m_wndSolutionView.InsertItem(_T("XtremeDemoView.cpp"), 4, 4, hti);
  80. m_wndSolutionView.Expand(hti, TVE_EXPAND);
  81. hti = m_wndSolutionView.InsertItem(_T("Header Files"), 2, 3, htiChild);
  82. m_wndSolutionView.InsertItem(_T("ChildFrm.h"), 5, 5, hti);
  83. m_wndSolutionView.InsertItem(_T("MainFrm.h"), 5, 5, hti);
  84. m_wndSolutionView.InsertItem(_T("Resource.rc"), 5, 5, hti);
  85. m_wndSolutionView.InsertItem(_T("StdAfx.h"), 5, 5, hti);
  86. m_wndSolutionView.InsertItem(_T("XtremeDemo.h"), 5, 5, hti);
  87. m_wndSolutionView.InsertItem(_T("XtremeDemoDoc.h"), 5, 5, hti);
  88. m_wndSolutionView.InsertItem(_T("XtremeDemoView.h"), 5, 5, hti);
  89. hti = m_wndSolutionView.InsertItem(_T("Resource Files"), 2, 3, htiChild);
  90. m_wndSolutionView.InsertItem(_T("Toolbar.bmp"), 5, 5, hti);
  91. m_wndSolutionView.InsertItem(_T("XtremeDemo.ico"), 5, 5, hti);
  92. m_wndSolutionView.InsertItem(_T("XtremeDemo.rc2"), 5, 5, hti);
  93. m_wndSolutionView.InsertItem(_T("XtremeDemoDoc.ico"), 5, 5, hti);
  94. m_wndSolutionView.InsertItem(_T("ReadMe.txt"), 5, 5, htiChild);
  95. m_wndSolutionView.InsertItem(_T("External Dependencies"), 2, 3, htiChild);
  96. m_wndSolutionView.Expand(htiParent, TVE_EXPAND);
  97. m_wndSolutionView.Expand(htiChild, TVE_EXPAND);
  98. }
  99. return 0;
  100. }
  101. void CSolutionExplorerPane::OnSize(UINT nType, int cx, int cy)
  102. {
  103. CWnd::OnSize(nType, cx, cy);
  104. int nTop = 0;
  105. if (m_wndToolBar.GetSafeHwnd())
  106. {
  107. CSize sz = m_wndToolBar.CalcDockingLayout(cx, LM_HIDEWRAP| LM_HORZDOCK|LM_HORZ | LM_COMMIT);
  108. m_wndToolBar.MoveWindow(0, nTop, cx, sz.cy);
  109. m_wndToolBar.Invalidate(FALSE);
  110. nTop += sz.cy;
  111. }
  112. if (m_wndSolutionView.GetSafeHwnd())
  113. {
  114. m_wndSolutionView.MoveWindow(0, nTop, cx, cy - nTop);
  115. m_wndSolutionView.Invalidate(FALSE);
  116. }
  117. }
  118. void CSolutionExplorerPane::OnEmptyCommand(UINT)
  119. {
  120. }
  121. void CSolutionExplorerPane::OnSetFocus(CWnd* /*pOldWnd*/)
  122. {
  123. m_wndSolutionView.SetFocus();
  124. }