MainFrm.cpp
上传用户:seaboy_04
上传日期:2013-02-24
资源大小:284k
文件大小:4k
源码类别:

其他行业

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "DrawCli.h"
  5. #include "MainFrm.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. class CDrawView;
  12. Data_Bus  Demo_Data; 
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CMainFrame
  15. IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
  16. BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
  17. //{{AFX_MSG_MAP(CMainFrame)
  18. ON_WM_CREATE()
  19. ON_COMMAND(ID_VIEW_DRAWTOOLBAR, OnViewDrawtoolbar)
  20. ON_UPDATE_COMMAND_UI(ID_VIEW_DRAWTOOLBAR, OnUpdateViewDrawtoolbar)
  21. ON_WM_CLOSE()
  22. ON_WM_TIMER()
  23. //}}AFX_MSG_MAP
  24. // Global help commands
  25. ON_COMMAND(ID_HELP_FINDER, CMDIFrameWnd::OnHelpFinder)
  26. ON_COMMAND(ID_HELP, CMDIFrameWnd::OnHelp)
  27. ON_COMMAND(ID_CONTEXT_HELP, CMDIFrameWnd::OnContextHelp)
  28. ON_COMMAND(ID_DEFAULT_HELP, CMDIFrameWnd::OnHelpFinder)
  29. END_MESSAGE_MAP()
  30. static UINT indicators[] =
  31. {
  32. ID_SEPARATOR,           // status line indicator
  33. ID_INDICATOR_CAPS,
  34. ID_INDICATOR_NUM,
  35. ID_INDICATOR_SCRL,
  36. };
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMainFrame construction/destruction
  39. CMainFrame::CMainFrame()
  40. {
  41. // TODO: add member initialization code here
  42. vHwnd=NULL;
  43. }
  44. CMainFrame::~CMainFrame()
  45. {
  46. }
  47. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  48. {
  49. if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
  50. return -1;
  51. if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  52. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  53. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  54. {
  55. TRACE0("Failed to create toolbarn");
  56. return -1;      // fail to create
  57. }
  58. if (!m_wndDrawToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  59. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  60. !m_wndDrawToolBar.LoadToolBar(IDR_DRAW_TOOLBAR))
  61. {
  62. TRACE0("Failed to create toolbarn");
  63. return -1;      // fail to create
  64. }
  65. if (!m_wndStatusBar.Create(this) ||
  66. !m_wndStatusBar.SetIndicators(indicators,
  67.   sizeof(indicators)/sizeof(UINT)))
  68. {
  69. TRACE0("Failed to create status barn");
  70. return -1;      // fail to create
  71. }
  72. // TODO: Delete these three lines if you don't want the toolbar to
  73. //  be dockable
  74. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  75. m_wndDrawToolBar.EnableDocking(CBRS_ALIGN_ANY);
  76. EnableDocking(CBRS_ALIGN_ANY);
  77. DockControlBar(&m_wndToolBar);
  78. DockControlBar(&m_wndDrawToolBar);
  79. SetTimer(1,150,NULL);
  80. return 0;
  81. }
  82. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  83. {
  84. if( !CMDIFrameWnd::PreCreateWindow(cs) )
  85. return FALSE;
  86. // TODO: Modify the Window class or styles here by modifying
  87. //  the CREATESTRUCT cs
  88. return TRUE;
  89. }
  90. /////////////////////////////////////////////////////////////////////////////
  91. // CMainFrame diagnostics
  92. #ifdef _DEBUG
  93. void CMainFrame::AssertValid() const
  94. {
  95. CMDIFrameWnd::AssertValid();
  96. }
  97. void CMainFrame::Dump(CDumpContext& dc) const
  98. {
  99. CMDIFrameWnd::Dump(dc);
  100. }
  101. #endif //_DEBUG
  102. /////////////////////////////////////////////////////////////////////////////
  103. // CMainFrame message handlers
  104. void CMainFrame::OnViewDrawtoolbar() 
  105. {
  106.   ShowControlBar(&m_wndDrawToolBar,m_wndDrawToolBar.IsWindowVisible() ? FALSE:TRUE,FALSE);
  107. }
  108. void CMainFrame::OnUpdateViewDrawtoolbar(CCmdUI* pCmdUI) 
  109. {
  110.   pCmdUI->SetCheck(m_wndDrawToolBar.IsWindowVisible());   
  111. }
  112. void CMainFrame::OnClose() 
  113. {
  114. // TODO: Add your message handler code here and/or call default
  115. KillTimer(1);
  116. CMDIFrameWnd::OnClose();
  117. }
  118. void CMainFrame::OnTimer(UINT nIDEvent) 
  119. {
  120.     for (int i=0;i<MAX_DI_DO;i++)
  121. {
  122. Demo_Data.DI_DO[i]=rand()%2;
  123. }
  124.     for (i=0;i<MAX_AI_AO;i++)
  125. {
  126. Demo_Data.AI_AO[i]=rand()+10.0;
  127. }
  128.   ::SendMessage(vHwnd,WM_DEMO_DATA,0,0);
  129. CMDIFrameWnd::OnTimer(nIDEvent);
  130. }