home *** CD-ROM | disk | FTP | other *** search
/ Master Visual C++ 1.5 / MASTERVC15.ISO / vcprog / original / ch20 / grow / growview.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-26  |  4.9 KB  |  220 lines

  1. // growview.cpp : implementation of the CGrowView class
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "grow.h"
  6.  
  7. #include "growdoc.h"
  8. #include "growview.h"
  9.  
  10. #ifdef _DEBUG
  11. #undef THIS_FILE
  12. static char BASED_CODE THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CGrowView
  17.  
  18. IMPLEMENT_DYNCREATE(CGrowView, CView)
  19.  
  20. BEGIN_MESSAGE_MAP(CGrowView, CView)
  21.     //{{AFX_MSG_MAP(CGrowView)
  22.     ON_COMMAND(ID_GROWING_ITEM1, OnGrowingItem1)
  23.     ON_COMMAND(ID_GROWING_ITEM2, OnGrowingItem2)
  24.     ON_COMMAND(ID_GROWING_ITEM3, OnGrowingItem3)
  25.     ON_COMMAND(ID_GROWING_ITEM4, OnGrowingItem4)
  26.     ON_COMMAND(ID_GROWING_ITEM5, OnGrowingItem5)
  27.     ON_COMMAND(ID_GROWING_ADDITEM, OnGrowingAdditem)
  28.     //}}AFX_MSG_MAP
  29. END_MESSAGE_MAP()
  30.  
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CGrowView construction/destruction
  33.  
  34. CGrowView::CGrowView()
  35. {
  36.     // TODO: add construction code here
  37.  
  38.      //////////////////////
  39.      // MY CODE STARTS HERE
  40.      //////////////////////
  41.  
  42.      m_CurrentAddedItem = 0;
  43.  
  44.      ////////////////////
  45.      // MY CODE ENDS HERE
  46.      ////////////////////
  47.  
  48.  
  49. }
  50.  
  51. CGrowView::~CGrowView()
  52. {
  53. }
  54.  
  55. /////////////////////////////////////////////////////////////////////////////
  56. // CGrowView drawing
  57.  
  58. void CGrowView::OnDraw(CDC* pDC)
  59. {
  60.     CGrowDoc* pDoc = GetDocument();
  61.     ASSERT_VALID(pDoc);
  62.  
  63.     // TODO: add draw code for native data here
  64. }
  65.  
  66. /////////////////////////////////////////////////////////////////////////////
  67. // CGrowView diagnostics
  68.  
  69. #ifdef _DEBUG
  70. void CGrowView::AssertValid() const
  71. {
  72.     CView::AssertValid();
  73. }
  74.  
  75. void CGrowView::Dump(CDumpContext& dc) const
  76. {
  77.     CView::Dump(dc);
  78. }
  79.  
  80. CGrowDoc* CGrowView::GetDocument() // non-debug version is inline
  81. {
  82.     ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGrowDoc)));
  83.     return (CGrowDoc*)m_pDocument;
  84. }
  85. #endif //_DEBUG
  86.  
  87. /////////////////////////////////////////////////////////////////////////////
  88. // CGrowView message handlers
  89.  
  90. void CGrowView::OnGrowingItem1()
  91. {
  92.     // TODO: Add your command handler code here
  93.  
  94.      //////////////////////
  95.      // MY CODE STARTS HERE
  96.      //////////////////////
  97.  
  98.     MessageBox ("I'm now inside OnGrowingItem1()");
  99.  
  100.      ////////////////////
  101.      // MY CODE ENDS HERE
  102.      ////////////////////
  103.  
  104. }
  105.  
  106. void CGrowView::OnGrowingItem2()
  107. {
  108.     // TODO: Add your command handler code here
  109.  
  110.      //////////////////////
  111.      // MY CODE STARTS HERE
  112.      //////////////////////
  113.  
  114.     MessageBox ("I'm now inside OnGrowingItem2()");
  115.  
  116.      ////////////////////
  117.      // MY CODE ENDS HERE
  118.      ////////////////////
  119.  
  120.  
  121.     
  122. }
  123.  
  124. void CGrowView::OnGrowingItem3()
  125. {
  126.     // TODO: Add your command handler code here
  127.     
  128.      //////////////////////
  129.      // MY CODE STARTS HERE
  130.      //////////////////////
  131.  
  132.     MessageBox ("I'm now inside OnGrowingItem3()");
  133.  
  134.      ////////////////////
  135.      // MY CODE ENDS HERE
  136.      ////////////////////
  137.  
  138. }
  139.  
  140. void CGrowView::OnGrowingItem4()
  141. {
  142.     // TODO: Add your command handler code here
  143.     
  144.      //////////////////////
  145.      // MY CODE STARTS HERE
  146.      //////////////////////
  147.  
  148.     MessageBox ("I'm now inside OnGrowingItem4()");
  149.  
  150.      ////////////////////
  151.      // MY CODE ENDS HERE
  152.      ////////////////////
  153.  
  154. }
  155.  
  156. void CGrowView::OnGrowingItem5()
  157. {
  158.     // TODO: Add your command handler code here
  159.     
  160.      //////////////////////
  161.      // MY CODE STARTS HERE
  162.      //////////////////////
  163.  
  164.     MessageBox ("I'm now inside OnGrowingItem5()");
  165.  
  166.      ////////////////////
  167.      // MY CODE ENDS HERE
  168.      ////////////////////
  169. }
  170.  
  171. void CGrowView::OnGrowingAdditem()
  172. {
  173.     // TODO: Add your command handler code here
  174.     
  175.           //////////////////////
  176.      // MY CODE STARTS HERE
  177.      //////////////////////
  178.  
  179.     // Extract the pointer of the parent pointer
  180.     CWnd* pParent = GetParent();
  181.  
  182.     // Extract the pointer of the menu bar
  183.     CMenu* pMenuBar = pParent->GetMenu();
  184.  
  185.     // Extract the pointer of the Growing menu
  186.     CMenu* pMenuGrowing = pMenuBar->GetSubMenu(1);
  187.  
  188.     CString Message;
  189.     char sCurrentAddedItem[10];
  190.  
  191.  
  192.     if (m_CurrentAddedItem == 5 )
  193.        {
  194.        // Display a message to the user
  195.        MessageBox ("Sorry, no more items can be added");
  196.        return;
  197.        }
  198.     else
  199.        {
  200.        // Construct the Message variable
  201.        itoa(m_CurrentAddedItem+1, sCurrentAddedItem, 10);
  202.        Message = "I am item number " +
  203.                  (CString)sCurrentAddedItem +
  204.                  " . I was added during execution time";
  205.  
  206.        // Append an item to the menu
  207.    pMenuGrowing->AppendMenu ( MF_STRING | MF_ENABLED,
  208.                              (UINT)ID_GROWING_ITEM1 +
  209.                              (UINT)m_CurrentAddedItem,
  210.                              (LPCSTR)Message );
  211.        // Update m_CurrentAddedItem for the next time
  212.        m_CurrentAddedItem++;
  213.        }
  214.  
  215.      ////////////////////
  216.      // MY CODE ENDS HERE
  217.      ////////////////////
  218.  
  219. }
  220.