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

对话框与窗口

开发平台:

Visual C++

  1. // splitfrm.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 "drawcli.h"
  22. #include "splitfrm.h"
  23. #include "mainfrm.h"
  24. #ifdef _DEBUG
  25. #undef THIS_FILE
  26. static char BASED_CODE THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CSplitFrame
  30. IMPLEMENT_DYNCREATE(CSplitFrame, CMDIChildWnd)
  31. static int nColor = xtpTabColorBlue;
  32. CSplitFrame::CSplitFrame()
  33. {
  34. m_nColor = nColor++;
  35. if (nColor > xtpTabColorMagenta)
  36. nColor = xtpTabColorBlue;
  37. }
  38. CSplitFrame::~CSplitFrame()
  39. {
  40. }
  41. BOOL CSplitFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
  42. {
  43. return m_wndSplitter.Create(this,
  44. 2, 2,       // TODO: adjust the number of rows, columns
  45. CSize(10, 10),  // TODO: adjust the minimum pane size
  46. pContext);
  47. }
  48. BOOL CSplitFrame::PreCreateWindow(CREATESTRUCT& cs)
  49. {
  50. // make sure view is maximum size to eliminate
  51. // flicker when switching tabs.
  52. cs.x =
  53. cs.y = 0;
  54. cs.cx =
  55. cs.cy = 32767;
  56. // TODO: Modify the Window class or styles here by modifying
  57. //  the CREATESTRUCT cs
  58. if( !CMDIChildWnd::PreCreateWindow(cs) )
  59. return FALSE;
  60. cs.style |= WS_CLIPCHILDREN;
  61. return TRUE;
  62. }
  63. void CSplitFrame::ActivateFrame(int nCmdShow)
  64. {
  65. // first window should be maximized
  66. if (GetParent()->GetWindow(GW_CHILD) == this)
  67. {
  68. nCmdShow = SW_SHOWMAXIMIZED;
  69. }
  70. CMDIChildWnd::ActivateFrame(nCmdShow);
  71. }
  72. BEGIN_MESSAGE_MAP(CSplitFrame, CMDIChildWnd)
  73. //{{AFX_MSG_MAP(CSplitFrame)
  74. ON_WM_MDIACTIVATE()
  75. //}}AFX_MSG_MAP
  76. ON_MESSAGE(WM_XTP_GETTABCOLOR, OnGetTabColor)
  77. ON_COMMAND_RANGE(ID_COLOR_BLUE, ID_COLOR_MAGENTA, OnSelectColor)
  78. ON_UPDATE_COMMAND_UI_RANGE(ID_COLOR_BLUE, ID_COLOR_MAGENTA, OnUpdateSelectColor)
  79. ON_COMMAND(ID_COLOR_NONE, OnSelectColorNone)
  80. ON_UPDATE_COMMAND_UI(ID_COLOR_NONE, OnUpdateSelectColorNone)
  81. END_MESSAGE_MAP()
  82. void CSplitFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pWnd)
  83. {
  84. if (!bActivate)
  85. {
  86. COleClientItem* pActiveItem = ((COleDocument*)GetActiveDocument())->GetInPlaceActiveItem(this);
  87. if (pActiveItem != NULL)
  88. {
  89. pActiveItem->Deactivate();
  90. }
  91. else
  92. {
  93. ((CMainFrame*)AfxGetMainWnd())->UpdatePropertyGridContent((CDrawView*)GetActiveView());
  94. }
  95. CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pWnd);
  96. }
  97. /////////////////////////////////////////////////////////////////////////////
  98. // CSplitFrame message handlers
  99. LRESULT CSplitFrame::OnGetTabColor(WPARAM, LPARAM)
  100. {
  101. // Can return any one of the XTPTabOneNoteColor RGB color values or any
  102. // valid COLORREF value for example:
  103. //
  104. // return CXTPTabPaintManager::GetOneNoteColor(xtpTabColorOrange);
  105. return m_nColor;
  106. }
  107. void CSplitFrame::OnSelectColor(UINT nColor)
  108. {
  109. m_nColor = nColor - ID_COLOR_BLUE + xtpTabColorBlue;
  110. }
  111. void CSplitFrame::OnUpdateSelectColor(CCmdUI* pCmdUI)
  112. {
  113. pCmdUI->SetCheck((int)pCmdUI->m_nID - ID_COLOR_BLUE == m_nColor - xtpTabColorBlue);
  114. }
  115. void CSplitFrame::OnSelectColorNone()
  116. {
  117. m_nColor = RGB(255, 255, 255);
  118. }
  119. void CSplitFrame::OnUpdateSelectColorNone(CCmdUI* pCmdUI)
  120. {
  121. pCmdUI->SetCheck(m_nColor == RGB(255, 255, 255));
  122. }