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

SNMP编程

开发平台:

MultiPlatform

  1. // ReportWnd.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "OAM.h"
  5. #include "ReportWnd.h"
  6. #include "OutputReport.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CReportWnd
  14. CReportWnd::CReportWnd()
  15. {
  16. }
  17. CReportWnd::~CReportWnd()
  18. {
  19. }
  20. BEGIN_MESSAGE_MAP(CReportWnd, CWnd)
  21. //{{AFX_MSG_MAP(CReportWnd)
  22. ON_WM_NCCALCSIZE()
  23. ON_WM_CREATE()
  24. //}}AFX_MSG_MAP
  25. ON_MESSAGE(SM_PAGECHANGED,OnPageChanged)
  26. END_MESSAGE_MAP()
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CReportWnd message handlers
  29. void CReportWnd::ActivateScrollBar()
  30. {
  31. if(!m_wndSheet.GetSafeHwnd())
  32. return;
  33. int min = 0;
  34. int max = 1024;
  35. int page = 10;
  36. COutputReport * pWnd = (COutputReport *)m_wndSheet.GetActiveView();
  37. if(pWnd && pWnd->GetSafeHwnd())
  38. {
  39. max = pWnd->GetHScrollRange();
  40. }
  41. // BOOL bShow = NeedScroll();
  42. m_wndSheet.ShowScrollBar(max>0);
  43. if (max>0)
  44. {
  45. /* CRect rect; pWnd->GetClientRect(rect);
  46. SCROLLINFO scrollInfor;
  47. scrollInfor.nPage = rect.Width();
  48. scrollInfor.nMin = 0;
  49. scrollInfor.nMax = max+100;
  50. scrollInfor.fMask = SIF_RANGE;
  51. m_wndSheet.GetScrollBar().SetScrollInfo( &scrollInfor);
  52. */ m_wndSheet.GetScrollBar().SetScrollRange(min, max);
  53. }
  54. }
  55. BOOL CReportWnd::NeedScroll()
  56. {
  57. CRect rect; GetClientRect(rect);
  58. return TRUE;//rect.Width() < SumWidthColumns() - 1;
  59. }
  60. void CReportWnd::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) 
  61. {
  62. // TODO: Add your message handler code here and/or call default
  63. if(m_wndSheet.GetSafeHwnd())
  64. {
  65. CWnd * pWnd = m_wndSheet.GetActiveView();
  66. // if(pWnd && pWnd->GetSafeHwnd())
  67. // pWnd->ModifyStyle(WS_HSCROLL, 0);//, SWP_NOREDRAW | SWP_NOSENDCHANGING);
  68. }
  69. ModifyStyle(WS_HSCROLL, 0, SWP_NOREDRAW | SWP_NOSENDCHANGING);
  70. CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
  71. ActivateScrollBar();
  72. }
  73. int CReportWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  74. {
  75. if (CWnd::OnCreate(lpCreateStruct) == -1)
  76. return -1;
  77. // TODO: Add your specialized creation code here
  78. if (!m_wndSheet.GetSafeHwnd())
  79. {
  80. ModifyStyle(0, WS_CLIPCHILDREN);
  81. m_wndSheet.Attach(this);
  82. m_wndSheet.SetWindowPos(&CWnd::wndTop,0,0,0,0, SWP_NOSIZE | SWP_NOMOVE);
  83. }
  84. return 0;
  85. }
  86. BOOL CReportWnd::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
  87. {
  88. // TODO: Add your specialized code here and/or call the base class
  89. ActivateScrollBar();
  90. return CWnd::OnNotify(wParam, lParam, pResult);
  91. }
  92. LRESULT CReportWnd::OnPageChanged(WPARAM pNewView, LPARAM)
  93. {
  94. if(pNewView)
  95. {
  96. ;//ActivateScrollBar();
  97. }
  98. return TRUE;
  99. }