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

对话框与窗口

开发平台:

Visual C++

  1. // ChildFrm.cpp : implementation of the CChildFrame class
  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 "ResourceEditor.h"
  22. #include "ChildFrm.h"
  23. #include "ResourceViewRecord.h"
  24. #ifdef _DEBUG
  25. #define new DEBUG_NEW
  26. #undef THIS_FILE
  27. static char THIS_FILE[] = __FILE__;
  28. #endif
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CChildFrame
  31. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
  32. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  33. //{{AFX_MSG_MAP(CChildFrame)
  34. ON_WM_CREATE()
  35. ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
  36. //}}AFX_MSG_MAP
  37. ON_NOTIFY(TVN_SELCHANGED, 100, OnResourceSelectionChanged)
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CChildFrame construction/destruction
  41. CChildFrame::CChildFrame()
  42. {
  43. // TODO: add member initialization code here
  44. }
  45. CChildFrame::~CChildFrame()
  46. {
  47. }
  48. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  49. {
  50. // TODO: Modify the Window class or styles here by modifying
  51. //  the CREATESTRUCT cs
  52. if( !CMDIChildWnd::PreCreateWindow(cs) )
  53. return FALSE;
  54. cs.style |= WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
  55. return TRUE;
  56. }
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CChildFrame diagnostics
  59. #ifdef _DEBUG
  60. void CChildFrame::AssertValid() const
  61. {
  62. CMDIChildWnd::AssertValid();
  63. }
  64. void CChildFrame::Dump(CDumpContext& dc) const
  65. {
  66. CMDIChildWnd::Dump(dc);
  67. }
  68. #endif //_DEBUG
  69. /////////////////////////////////////////////////////////////////////////////
  70. // CChildFrame message handlers
  71. int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  72. {
  73. if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
  74. return -1;
  75. m_wndResourceTree.Create(WS_CHILD|WS_VISIBLE|TVS_HASLINES|TVS_HASBUTTONS , CRect(0, 0, 0, 0), this, 100);
  76. if (!m_ilResourceTree.Create(16, 16, ILC_MASK|ILC_COLOR24, 0, 1))
  77. return -1;
  78. CBitmap bmp;
  79. VERIFY(bmp.LoadBitmap(IDB_RESTREE));
  80. m_ilResourceTree.Add(&bmp, CXTPImageManager::GetBitmapMaskColor(bmp, CPoint(0, 0)));
  81. m_wndResourceTree.SetImageList(&m_ilResourceTree, TVSIL_NORMAL);
  82. // Initialize the docking pane manager and set the
  83. // initial them for the docking panes.  Do this only after all
  84. // control bars objects have been created and docked.
  85. m_paneManager.InstallDockingPanes(this);
  86. // Set Office 2003 Theme
  87. m_paneManager.SetTheme(xtpPaneThemeVisualStudio2005);
  88. // Create docking panes.
  89. CXTPDockingPane* pwndPane1 = m_paneManager.CreatePane(
  90. IDR_PANE_RESOURCES, CRect(0, 0,200, 120), xtpPaneDockLeft);
  91. pwndPane1->SetOptions(xtpPaneNoCloseable);
  92. return 0;
  93. }
  94. LRESULT CChildFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam)
  95. {
  96. if (wParam == XTP_DPN_SHOWWINDOW)
  97. {
  98. // get a pointer to the docking pane being shown.
  99. CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;
  100. if (!pPane->IsValid())
  101. {
  102. pPane->Attach(&m_wndResourceTree);
  103. }
  104. return TRUE; // handled
  105. }
  106. return FALSE;
  107. }
  108. void CChildFrame::OnResourceSelectionChanged(NMHDR* pNMHDR, LRESULT* pResult) 
  109. {
  110. NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
  111. // TODO: Add your control notification handler code here
  112. if (pNMTreeView->itemNew.lParam)
  113. {
  114. CResourceViewRecord* pRecord = (CResourceViewRecord*)pNMTreeView->itemNew.lParam;
  115. CXTPReportView* pView = DYNAMIC_DOWNCAST(CXTPReportView, GetActiveView());
  116. if (pView && pRecord)
  117. {
  118. CXTPReportControl& wndReport = pView->GetReportCtrl();
  119. CXTPReportRow* pRow = wndReport.GetRows()->Find(pRecord);
  120. if (pRow)
  121. {
  122. wndReport.SetFocusedRow(pRow);
  123. }
  124. }
  125. }
  126. *pResult = 0;
  127. }
  128. CFrameWnd* CChildFrame::GetActiveFrame() 
  129. {
  130. // TODO: Add your specialized code here and/or call the base class
  131. return CMDIChildWnd::GetActiveFrame();
  132. }