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

对话框与窗口

开发平台:

Visual C++

  1. // XTTabView.cpp : implementation of the CXTTabView class.
  2. //
  3. // This file is a part of the XTREME CONTROLS 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 "XTDefines.h"
  22. #include "XTGlobal.h"
  23. #include "XTVC50Helpers.h"
  24. #include "XTMemDC.h"
  25. #include "XTTabCtrlButtons.h"
  26. #include "XTTabBase.h"
  27. #include "XTTabView.h"
  28. #ifdef _DEBUG
  29. #define new DEBUG_NEW
  30. #undef THIS_FILE
  31. static char THIS_FILE[] = __FILE__;
  32. #endif
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CXTTabView
  35. IMPLEMENT_THEME_REFRESH(CXTTabView, CCtrlView)
  36. IMPLEMENT_DYNCREATE(CXTTabView, CCtrlView)
  37. BEGIN_MESSAGE_MAP(CXTTabView, CCtrlView)
  38. //{{AFX_MSG_MAP(CXTTabView)
  39. ON_WM_MOUSEACTIVATE()
  40. //}}AFX_MSG_MAP
  41. ON_TABCTRLEX_REFLECT()
  42. END_MESSAGE_MAP()
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CXTTabView construction/destruction
  45. CXTTabView::CXTTabView()
  46. {
  47. m_bBoldFont = FALSE;
  48. ImplAttach(&GetTabCtrl());
  49. }
  50. CXTTabView::~CXTTabView()
  51. {
  52. }
  53. bool CXTTabView::Init()
  54. {
  55. if (!CXTTabViewBase::Init())
  56. return false;
  57. // Make sure the common controls library is initialized.
  58. ::InitCommonControls();
  59. return true;
  60. }
  61. /////////////////////////////////////////////////////////////////////////////
  62. // CXTTabView tooltip related functions
  63. void CXTTabView::UpdateDocTitle()
  64. {
  65. TCHAR szText[256];
  66. TC_ITEM tci;
  67. tci.mask = TCIF_TEXT;
  68. tci.cchTextMax = _countof(szText);
  69. tci.pszText = szText;
  70. GetTabCtrl().GetItem(GetTabCtrl().GetCurSel(), &tci);
  71. GetDocument()->SetTitle(tci.pszText);
  72. }
  73. int CXTTabView::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
  74. {
  75. // If current active view is a child view, then do nothing.
  76. CFrameWnd* pParentFrame = GetParentFrame();
  77. CView* pView = pParentFrame ? pParentFrame->GetActiveView() : NULL;
  78. if (IsChildView(pView))
  79. {
  80. return MA_NOACTIVATE;
  81. }
  82. return CCtrlView::OnMouseActivate(pDesktopWnd, nHitTest, message);
  83. }
  84. void CXTTabView::OnInitialUpdate()
  85. {
  86. CCtrlView::OnInitialUpdate();
  87. // Get a pointer to the active view.
  88. CView* pActiveView = DYNAMIC_DOWNCAST(CView, GetActiveView());
  89. if (pActiveView != NULL)
  90. {
  91. // Get a pointer to the parent frame.
  92. CFrameWnd* pParentFrame = GetParentFrame();
  93. if (pParentFrame != NULL)
  94. {
  95. // If the active view for the frame does not match the active
  96. // view for the tab control, set the frames active view.
  97. if (pParentFrame->GetActiveView() != pActiveView)
  98. {
  99. pParentFrame->SetActiveView(pActiveView);
  100. }
  101. }
  102. }
  103. }