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

对话框与窗口

开发平台:

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 "MDIPanes.h"
  22. #include "ChildFrm.h"
  23. #ifdef _DEBUG
  24. #define new DEBUG_NEW
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CChildFrame
  30. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
  31. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  32. //{{AFX_MSG_MAP(CChildFrame)
  33. ON_WM_CREATE()
  34. ON_COMMAND(ID_TOOLS_PROPERTIES, OnToolsProperties)
  35. //}}AFX_MSG_MAP
  36. ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
  37. END_MESSAGE_MAP()
  38. XTPDockingPanePaintTheme CChildFrame::m_themeCurrent = xtpPaneThemeOffice;
  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. if (!InitCommandBars())
  76. return -1;
  77. CXTPCommandBars* pCommandBars = GetCommandBars();
  78. pCommandBars->GetCommandBarsOptions()->bShowExpandButtonAlways = false;
  79. CXTPToolBar* pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
  80. if (!pCommandBar ||
  81. !pCommandBar->LoadToolBar(IDR_CHILD_TOOLBAR))
  82. {
  83. TRACE0("Failed to create toolbarn");
  84. return -1;
  85. }
  86. CXTPControlButton* pControl = (CXTPControlButton*)pCommandBar->GetControls()->FindControl(ID_TOOLS_PROPERTIES);
  87. pControl->SetStyle(xtpButtonIconAndCaption);
  88. // control bars objects have been created and docked.
  89. m_paneManager.InstallDockingPanes(this);
  90. // Create docking panes.
  91. m_paneManager.CreatePane(
  92. IDR_PANE_PROPERTIES, CRect(0, 0,210, 120), xtpPaneDockLeft);
  93. int nID = IDR_PANE_PROPERTIES;
  94. m_paneManager.SetIcons(IDB_BITMAP_ICONS, &nID, 1);
  95. m_paneManager.SetTheme(m_themeCurrent);
  96. return 0;
  97. }
  98. void CChildFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
  99. {
  100. CMDIChildWnd::OnUpdateFrameTitle(bAddToTitle);
  101. CXTPDockingPane* pPane = m_paneManager.FindPane(IDR_PANE_PROPERTIES);
  102. if (pPane)
  103. {
  104. CString strTitle;
  105. GetWindowText(strTitle);
  106. pPane->SetTitle(_T("Properties - ") + strTitle + _T("nProperties"));
  107. }
  108. }
  109. LRESULT CChildFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam)
  110. {
  111. if (wParam == XTP_DPN_SHOWWINDOW)
  112. {
  113. CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;
  114. if (!pPane->IsValid())
  115. {
  116. ASSERT (pPane->GetID() == IDR_PANE_PROPERTIES);
  117. if (!m_wndPropertyGrid.m_hWnd)
  118. {
  119. m_wndPropertyGrid.Create(CRect(0, 0, 0, 0), this, 1000);
  120. m_wndPropertyGrid.SetOwner(this);
  121. CFont font;
  122. font.CreatePointFont(180, _T("Arial"));
  123. LOGFONT lf;
  124. font.GetLogFont( &lf );
  125. CXTPPropertyGridItem* pSettings  = m_wndPropertyGrid.AddCategory(_T("Settings"));
  126. pSettings->AddChildItem(new CXTPPropertyGridItem(_T("Text"), _T("www.codejock.com")));
  127. pSettings->AddChildItem(new CXTPPropertyGridItemFont(_T("Font"), lf));
  128. pSettings->AddChildItem(new CXTPPropertyGridItemColor(_T("Color"), RGB(0,0, 255)));
  129. pSettings->Expand();
  130. }
  131. pPane->Attach(&m_wndPropertyGrid);
  132. }
  133. return TRUE;
  134. }
  135. return FALSE;
  136. }
  137. void CChildFrame::OnToolsProperties()
  138. {
  139. m_paneManager.ShowPane(IDR_PANE_PROPERTIES);
  140. }