MAINFRM.CPP
上传用户:bobuwen
上传日期:2013-01-31
资源大小:44k
文件大小:3k
源码类别:

状态条

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "ProgressDemo.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. /////////////////////////////////////////////////////////////////////////////
  12. // CMainFrame
  13. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  14. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  15. //{{AFX_MSG_MAP(CMainFrame)
  16. ON_WM_CREATE()
  17. ON_COMMAND(ID_TEST_BAR, OnTestBar)
  18. ON_COMMAND(ID_TEST_SMOOTHBAR, OnTestSmoothbar)
  19. ON_COMMAND(ID_TEST_STDBAR, OnTestStdbar)
  20. ON_COMMAND(ID_TEST_CHANGETEXT, OnTestChangetext)
  21. ON_COMMAND(ID_TEST_PANE2, OnTestPane2)
  22. //}}AFX_MSG_MAP
  23. END_MESSAGE_MAP()
  24. static UINT indicators[] =
  25. {
  26. ID_SEPARATOR,           // status line indicator
  27. ID_INDICATOR_CAPS,
  28. ID_INDICATOR_NUM,
  29. ID_INDICATOR_SCRL,
  30. };
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CMainFrame construction/destruction
  33. CMainFrame::CMainFrame()
  34. {
  35. }
  36. CMainFrame::~CMainFrame()
  37. {
  38. }
  39. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  40. {
  41. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  42. return -1;
  43. if (!m_wndToolBar.Create(this) ||
  44. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  45. {
  46. TRACE0("Failed to create toolbarn");
  47. return -1;      // fail to create
  48. }
  49. if (!m_wndStatusBar.Create(this) ||
  50. !m_wndStatusBar.SetIndicators(indicators,
  51.   sizeof(indicators)/sizeof(UINT)))
  52. {
  53. TRACE0("Failed to create status barn");
  54. return -1;      // fail to create
  55. }
  56. m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
  57. CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  58. m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  59. EnableDocking(CBRS_ALIGN_ANY);
  60. DockControlBar(&m_wndToolBar);
  61. return 0;
  62. }
  63. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  64. {
  65. return CFrameWnd::PreCreateWindow(cs);
  66. }
  67. /////////////////////////////////////////////////////////////////////////////
  68. // CMainFrame diagnostics
  69. #ifdef _DEBUG
  70. void CMainFrame::AssertValid() const
  71. {
  72. CFrameWnd::AssertValid();
  73. }
  74. void CMainFrame::Dump(CDumpContext& dc) const
  75. {
  76. CFrameWnd::Dump(dc);
  77. }
  78. #endif //_DEBUG
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CMainFrame message handlers
  81. BOOL PeekAndPump()
  82. {
  83. static MSG msg;
  84. while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) {
  85. if (!AfxGetApp()->PumpMessage()) {
  86. ::PostQuitMessage(0);
  87. return FALSE;
  88. }
  89. }
  90. return TRUE;
  91. }
  92. #include "ProgressBar.h"
  93. void CMainFrame::OnTestBar() 
  94. {
  95. CProgressBar bar(_T("Progress"), 40, 5000, TRUE);
  96. for (int i = 0; i < 5000; i++) {
  97. bar.StepIt();
  98. PeekAndPump();
  99. }
  100. }
  101. void CMainFrame::OnTestSmoothbar() 
  102. {
  103. CProgressBar bar(_T("Progress"), 40, 5000, TRUE);
  104. for (int i = 0; i < 5000; i++) {
  105. bar.StepIt();
  106. PeekAndPump();
  107. }
  108. }
  109. void CMainFrame::OnTestStdbar() 
  110. {
  111. CProgressBar bar(_T("Progress"), 40, 5000);
  112. for (int i = 0; i < 5000; i++) {
  113. bar.StepIt();
  114. PeekAndPump();
  115. }
  116. }
  117. void CMainFrame::OnTestChangetext() 
  118. {
  119. CProgressBar bar(_T("Progress"), 40, 5000);
  120. for (int i = 0; i < 5000; i++) {
  121. CString str;
  122. str.Format("%d%% complete", i*100/5000);
  123. bar.SetText(str);
  124. bar.StepIt();
  125. PeekAndPump();
  126. }
  127. }
  128. void CMainFrame::OnTestPane2() 
  129. {
  130. CProgressBar bar(_T("Test"), 100, 5000, TRUE, 1);
  131. for (int i = 0; i < 5000; i++) {
  132. bar.StepIt();
  133. PeekAndPump();
  134. }
  135. }