home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / mtmdi.pak / BOUNCE.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  124 lines

  1. // bounce.h : Declares the class interfaces for the Bounce child window.
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. //
  13.  
  14. #ifndef __BOUNCE_H__
  15. #define __BOUNCE_H__
  16.  
  17. #define IDC_BOUNCE_WND 1
  18.  
  19. // COnCmdMsg struct is used to pass the OnCmdMsg parameters via SendMessage
  20. // from the CBounceMDIChildWnd in the main application thread to the
  21. // CBounceWnd in the separate u/i thread.
  22. struct COnCmdMsg
  23. {
  24.     int m_nID;
  25.     int m_nCode;
  26.     void* m_pExtra;
  27.     AFX_CMDHANDLERINFO* m_pHandlerInfo;
  28. };
  29.  
  30. #define WM_USER_ONCMDMSG (WM_USER + 0x1000)
  31. #define WM_USER_PREPARE_TO_CLOSE (WM_USER + 0x1001)
  32.  
  33. /////////////////////////////////////////////////////////////////////////////
  34. // A CBounceWnd is a child window of the CBounceMDIChildWnd.
  35. // The CBounceMDIChildWnd executes in the same thread as that of the
  36. // CMainFrame (CMDIFrameWnd), which is the main application thread.
  37.  
  38. class CBounceMDIChildWnd : public CMDIChildWnd
  39. {
  40. public:
  41.     CBounceMDIChildWnd();
  42.     BOOL Create(LPCTSTR szTitle, LONG style = 0,
  43.             const RECT& rect = rectDefault,
  44.             CMDIFrameWnd* pParent = NULL);
  45.  
  46. // Overrides
  47.     // ClassWizard generated virtual function overrides
  48.     //{{AFX_VIRTUAL(CBounceMDIChildWnd)
  49.     public:
  50.     virtual BOOL DestroyWindow();
  51.     //}}AFX_VIRTUAL
  52.  
  53. // Implementation
  54. protected:
  55.     virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra,
  56.         AFX_CMDHANDLERINFO* pHandlerInfo);
  57.     static CMenu NEAR menu;     // menu for all BOUNCE windows
  58.  
  59.     // message handlers
  60.     //{{AFX_MSG(CBounceMDIChildWnd)
  61.     afx_msg void OnSize(UINT nType, int cx, int cy);
  62.     //}}AFX_MSG
  63.     afx_msg LRESULT OnPrepareToClose(WPARAM wParam = 0, LPARAM lParam = 0);
  64.  
  65.     DECLARE_MESSAGE_MAP()
  66. };
  67.  
  68. class CBounceWnd : public CWnd
  69. {
  70.     DECLARE_DYNAMIC(CBounceWnd)
  71. public:
  72.     CBounceWnd();
  73.     BOOL Create(LPCTSTR szTitle, LONG style, const RECT& rect, CWnd* pParent);
  74.  
  75. // Overrides
  76.     // ClassWizard generated virtual function overrides
  77.     //{{AFX_VIRTUAL(CBounceWnd)
  78.     //}}AFX_VIRTUAL
  79.  
  80. // Implementation
  81. protected:
  82.     // bounce window client area and bouncing ball color/size parameters
  83.     UINT m_nIDColor;
  84.     COLORREF m_clrBall;
  85.  
  86.     BOOL m_bFastSpeed;          // current speed
  87.  
  88.     CPoint m_ptPixel;           // pixel size
  89.     CSize m_sizeRadius;         // radius of ball
  90.     CSize m_sizeMove;           // move speed
  91.     CSize m_sizeTotal;          // total size for ball bitmap
  92.     CPoint m_ptCenter;          // current center for the ball
  93.  
  94.     // for replicating bouncing ball
  95.     CBitmap m_bmBall;
  96.  
  97.     void MakeNewBall();
  98.     void ChangeSpeed();
  99.  
  100.     // message handlers
  101.     //{{AFX_MSG(CBounceWnd)
  102.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  103.     afx_msg void OnSize(UINT nType, int cx, int cy);
  104.     afx_msg void OnTimer(UINT nIDEvent);
  105.     afx_msg void OnUpdateColor(CCmdUI* pCmdUI);
  106.     afx_msg void OnColor();
  107.     afx_msg void OnCustomColor();
  108.     afx_msg void OnUpdateSlow(CCmdUI* pCmdUI);
  109.     afx_msg void OnSlow();
  110.     afx_msg void OnUpdateFast(CCmdUI* pCmdUI);
  111.     afx_msg void OnFast();
  112.     afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  113.     afx_msg void OnDestroy();
  114.     //}}AFX_MSG
  115.     afx_msg LRESULT OnDelegatedCmdMsg(WPARAM, LPARAM);
  116.     afx_msg LRESULT OnPrepareToClose(WPARAM wParam = 0, LPARAM lParam = 0);
  117.  
  118.     DECLARE_MESSAGE_MAP()
  119. };
  120.  
  121. /////////////////////////////////////////////////////////////////////////////
  122.  
  123. #endif // __BOUNCE_H__
  124.