ChildFrm.cpp
上传用户:oy0519
上传日期:2008-01-20
资源大小:124k
文件大小:4k
源码类别:

绘图程序

开发平台:

Visual C++

  1. // ChildFrm.cpp : implementation of the CChildFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "RTDemo.h"
  5. #include "RTDemoDoc.h"
  6. #include "ChildFrm.h"
  7. #include "RTDemoView.h"
  8. #include "RTForm.h"
  9. #include "RTDlg.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CChildFrame
  17. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
  18. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
  19. //{{AFX_MSG_MAP(CChildFrame)
  20. ON_COMMAND(ID_VIEW_RESTORETIMER, OnViewRestoretimer)
  21. ON_UPDATE_COMMAND_UI(ID_VIEW_RESTORETIMER, OnUpdateViewRestoretimer)
  22. ON_COMMAND(ID_VIEW_KILLTIMER, OnViewKilltimer)
  23. ON_UPDATE_COMMAND_UI(ID_VIEW_KILLTIMER, OnUpdateViewKilltimer)
  24. ON_COMMAND(ID_EDIT_INSERT, OnEditInsert)
  25. ON_UPDATE_COMMAND_UI(ID_EDIT_INSERT, OnUpdateEditInsert)
  26. ON_COMMAND(ID_EDIT_DELETE, OnEditDelete)
  27. ON_UPDATE_COMMAND_UI(ID_EDIT_DELETE, OnUpdateEditDelete)
  28. ON_COMMAND(ID_EDIT_MODIFY, OnEditModify)
  29. ON_UPDATE_COMMAND_UI(ID_EDIT_MODIFY, OnUpdateEditModify)
  30. //}}AFX_MSG_MAP
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CChildFrame construction/destruction
  34. CChildFrame::CChildFrame()
  35. {
  36. // TODO: add member initialization code here
  37. }
  38. CChildFrame::~CChildFrame()
  39. {
  40. }
  41. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  42. {
  43. // TODO: Modify the Window class or styles here by modifying
  44. //  the CREATESTRUCT cs
  45. if( !CMDIChildWnd::PreCreateWindow(cs) )
  46. return FALSE;
  47. return TRUE;
  48. }
  49. /////////////////////////////////////////////////////////////////////////////
  50. // CChildFrame diagnostics
  51. #ifdef _DEBUG
  52. void CChildFrame::AssertValid() const
  53. {
  54. CMDIChildWnd::AssertValid();
  55. }
  56. void CChildFrame::Dump(CDumpContext& dc) const
  57. {
  58. CMDIChildWnd::Dump(dc);
  59. }
  60. #endif //_DEBUG
  61. /////////////////////////////////////////////////////////////////////////////
  62. // CChildFrame message handlers
  63. BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
  64. {
  65. BOOL bSuccess;
  66. CRect rect;
  67. GetClientRect(&rect);
  68. CSize size  = rect.Size();
  69. size.cy = size.cy * 2 / 3;
  70. if (!(bSuccess = m_wndSplitter.CreateStatic(this, 2, 1, WS_CHILD|WS_VISIBLE, AFX_IDW_PANE_FIRST)))
  71. {
  72. TRACE("Failed to CreateStaticSplittern");
  73. return FALSE;
  74. }
  75.                     
  76.     if (!(bSuccess &= m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CRTDemoView), size, pContext)))
  77. {
  78. TRACE("Failed to create base panen");
  79. return FALSE;
  80. }  
  81. if (!(bSuccess &= m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CRTForm), size, pContext)))
  82. {
  83. TRACE("Failed to create base panen");
  84. return FALSE;
  85. }  
  86.     m_wndSplitter.SetActivePane(1, 0);
  87. return TRUE;
  88. }
  89. void CChildFrame::OnViewRestoretimer() 
  90. {
  91. ((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->RTRestoreTimer();
  92. }
  93. void CChildFrame::OnUpdateViewRestoretimer(CCmdUI* pCmdUI) 
  94. {
  95. pCmdUI->Enable(((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->m_bTimerOn == FALSE);
  96. }
  97. void CChildFrame::OnViewKilltimer() 
  98. {
  99. ((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->RTKillTimer();
  100. }
  101. void CChildFrame::OnUpdateViewKilltimer(CCmdUI* pCmdUI) 
  102. {
  103. pCmdUI->Enable(((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->m_bTimerOn == TRUE);
  104. }
  105. void CChildFrame::OnEditInsert() 
  106. {
  107. CInsert Insert(this);
  108. Insert.DoModal();
  109. }
  110. void CChildFrame::OnUpdateEditInsert(CCmdUI* pCmdUI) 
  111. {
  112. pCmdUI->Enable();
  113. }
  114. void CChildFrame::OnEditDelete() 
  115. {
  116. CRTDlg RtDlg(this);
  117. RtDlg.DoModal();
  118. }
  119. void CChildFrame::OnUpdateEditDelete(CCmdUI* pCmdUI) 
  120. {
  121. if (((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->m_Graph.m_LineArray.GetSize() > 0)
  122. pCmdUI->Enable();
  123. else
  124. pCmdUI->Enable(FALSE);
  125. }
  126. void CChildFrame::OnEditModify() 
  127. {
  128. CModify MdDlg(this);
  129. MdDlg.DoModal();
  130. }
  131. void CChildFrame::OnUpdateEditModify(CCmdUI* pCmdUI) 
  132. {
  133. if (((CRTDemoView*)m_wndSplitter.GetPane(0, 0))->m_Graph.m_LineArray.GetSize() > 0)
  134. pCmdUI->Enable();
  135. else
  136. pCmdUI->Enable(FALSE);
  137. }