OAMMINIDOCKFRAMEWND.CPP
上传用户:shgx688
上传日期:2009-12-27
资源大小:855k
文件大小:3k
源码类别:

SNMP编程

开发平台:

MultiPlatform

  1. // OAMMiniDockFrameWnd.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "OAMMiniDockFrameWnd.h"
  5. #include "OAMDockContext.h"
  6. #include "OAMSizeDockBar.h"
  7. #include "OAMControlBar.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // COAMMiniDockFrameWnd
  15. COAMMiniDockFrameWnd::COAMMiniDockFrameWnd()
  16. {
  17. // TODO: add construction code here.
  18. }
  19. COAMMiniDockFrameWnd::~COAMMiniDockFrameWnd()
  20. {
  21. // TODO: add destruction code here.
  22. }
  23. IMPLEMENT_DYNCREATE(COAMMiniDockFrameWnd, CMiniDockFrameWnd)
  24. BEGIN_MESSAGE_MAP(COAMMiniDockFrameWnd, CMiniDockFrameWnd)
  25. //{{AFX_MSG_MAP(COAMMiniDockFrameWnd)
  26. ON_WM_NCLBUTTONDOWN()
  27. ON_WM_NCLBUTTONDBLCLK()
  28. ON_WM_ERASEBKGND()
  29. ON_WM_MBUTTONDBLCLK()
  30. //}}AFX_MSG_MAP
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // COAMMiniDockFrameWnd message handlers
  34. void COAMMiniDockFrameWnd::OnNcLButtonDown(UINT nHitTest, CPoint point) 
  35. {
  36. COAMSizeDockBar *pSizeBar = (COAMSizeDockBar*)&m_wndDockBar;
  37. if (nHitTest == HTCAPTION)
  38. {
  39. ActivateTopParent();
  40. if ((m_wndDockBar.m_dwStyle & CBRS_FLOAT_MULTI) == 0)
  41. {
  42. int nPos = 1;
  43. CControlBar* pBar = NULL;
  44. while(pBar == NULL && nPos < m_wndDockBar.m_arrBars.GetSize())
  45. pBar = pSizeBar->GetDockedSizeBar(nPos++);
  46. // ASSERT(pBar != NULL);
  47. // ASSERT_KINDOF(CControlBar, pBar);
  48. // ASSERT(pBar->m_pDockContext != NULL);
  49. if (!pBar->IsKindOf(RUNTIME_CLASS(COAMControlBar))) {
  50. CMiniDockFrameWnd::OnNcLButtonDown(nHitTest,point);
  51. return;
  52. }
  53. ((COAMDockContext *)pBar->m_pDockContext)->StartDragDockBar(point);
  54. return;
  55. }
  56. }
  57. else if (nHitTest >= HTSIZEFIRST && nHitTest <= HTSIZELAST)
  58. {
  59. ActivateTopParent();
  60. int nPos = 1;
  61. CControlBar* pBar = NULL;
  62. while(pBar == NULL && nPos < m_wndDockBar.m_arrBars.GetSize())
  63. pBar = pSizeBar->GetDockedSizeBar(nPos++);
  64. // ASSERT(pBar != NULL);
  65. ASSERT_KINDOF(CControlBar, pBar);
  66. // ASSERT(pBar->m_pDockContext != NULL);
  67. // ASSERT((m_wndDockBar.m_dwStyle & CBRS_FLOAT_MULTI) == 0);
  68. if (!pBar->IsKindOf(RUNTIME_CLASS(COAMControlBar))) {
  69. CMiniDockFrameWnd::OnNcLButtonDown(nHitTest,point);
  70. return;
  71. }
  72. pBar->m_pDockContext->StartResize(nHitTest, point);
  73. return;
  74. }
  75. CMiniFrameWnd::OnNcLButtonDown(nHitTest, point);
  76. }
  77. void COAMMiniDockFrameWnd::OnNcLButtonDblClk(UINT nHitTest, CPoint point) 
  78. {
  79. if (nHitTest == HTCAPTION)
  80. {
  81. ActivateTopParent();
  82. COAMSizeDockBar * m_pSizeBar = (COAMSizeDockBar *)&m_wndDockBar;
  83. if ((m_pSizeBar->m_dwStyle & CBRS_FLOAT_MULTI) == 0)
  84. {
  85. int nPos = 1;
  86. CControlBar* pBar = NULL;
  87. while(pBar == NULL && nPos < m_pSizeBar->m_arrBars.GetSize())
  88. pBar = m_pSizeBar->GetDockedSizeBar(nPos++);
  89. // ASSERT(pBar != NULL);
  90. ASSERT_KINDOF(CControlBar, pBar);
  91. // ASSERT(pBar->m_pDockContext != NULL);
  92. if (pBar->IsKindOf(RUNTIME_CLASS(COAMControlBar)))
  93. pBar->m_pDockContext->ToggleDocking();
  94. return;
  95. }
  96. }
  97. }