BOUNCE.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  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-1998 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. #ifndef __BOUNCE_H__
  14. #define __BOUNCE_H__
  15. #define IDC_BOUNCE_WND 1
  16. // COnCmdMsg struct is used to pass the OnCmdMsg parameters via SendMessage
  17. // from the CBounceMDIChildWnd in the main application thread to the
  18. // CBounceWnd in the separate u/i thread.
  19. struct COnCmdMsg
  20. {
  21. int m_nID;
  22. int m_nCode;
  23. void* m_pExtra;
  24. AFX_CMDHANDLERINFO* m_pHandlerInfo;
  25. };
  26. #define WM_USER_ONCMDMSG (WM_USER + 0x1000)
  27. #define WM_USER_PREPARE_TO_CLOSE (WM_USER + 0x1001)
  28. /////////////////////////////////////////////////////////////////////////////
  29. // A CBounceWnd is a child window of the CBounceMDIChildWnd.
  30. // The CBounceMDIChildWnd executes in the same thread as that of the
  31. // CMainFrame (CMDIFrameWnd), which is the main application thread.
  32. class CBounceMDIChildWnd : public CMDIChildWnd
  33. {
  34. public:
  35. CBounceMDIChildWnd();
  36. BOOL Create(LPCTSTR szTitle, LONG style = 0,
  37. const RECT& rect = rectDefault,
  38. CMDIFrameWnd* pParent = NULL);
  39. // Overrides
  40. // ClassWizard generated virtual function overrides
  41. //{{AFX_VIRTUAL(CBounceMDIChildWnd)
  42. public:
  43. virtual BOOL DestroyWindow();
  44. //}}AFX_VIRTUAL
  45. // Implementation
  46. protected:
  47. virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra,
  48. AFX_CMDHANDLERINFO* pHandlerInfo);
  49. static CMenu NEAR menu;     // menu for all BOUNCE windows
  50. // message handlers
  51. //{{AFX_MSG(CBounceMDIChildWnd)
  52. afx_msg void OnSize(UINT nType, int cx, int cy);
  53. //}}AFX_MSG
  54. afx_msg LRESULT OnPrepareToClose(WPARAM wParam = 0, LPARAM lParam = 0);
  55. DECLARE_MESSAGE_MAP()
  56. };
  57. class CBounceWnd : public CWnd
  58. {
  59. DECLARE_DYNAMIC(CBounceWnd)
  60. public:
  61. CBounceWnd();
  62. BOOL Create(LPCTSTR szTitle, LONG style, const RECT& rect, CWnd* pParent);
  63. // Overrides
  64. // ClassWizard generated virtual function overrides
  65. //{{AFX_VIRTUAL(CBounceWnd)
  66. //}}AFX_VIRTUAL
  67. // Implementation
  68. protected:
  69. // bounce window client area and bouncing ball color/size parameters
  70. UINT m_nIDColor;
  71. COLORREF m_clrBall;
  72. BOOL m_bFastSpeed;          // current speed
  73. CPoint m_ptPixel;           // pixel size
  74. CSize m_sizeRadius;         // radius of ball
  75. CSize m_sizeMove;           // move speed
  76. CSize m_sizeTotal;          // total size for ball bitmap
  77. CPoint m_ptCenter;          // current center for the ball
  78. // for replicating bouncing ball
  79. CBitmap m_bmBall;
  80. void MakeNewBall();
  81. void ChangeSpeed();
  82. // message handlers
  83. //{{AFX_MSG(CBounceWnd)
  84. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  85. afx_msg void OnSize(UINT nType, int cx, int cy);
  86. afx_msg void OnTimer(UINT nIDEvent);
  87. afx_msg void OnUpdateColor(CCmdUI* pCmdUI);
  88. afx_msg void OnColor();
  89. afx_msg void OnCustomColor();
  90. afx_msg void OnUpdateSlow(CCmdUI* pCmdUI);
  91. afx_msg void OnSlow();
  92. afx_msg void OnUpdateFast(CCmdUI* pCmdUI);
  93. afx_msg void OnFast();
  94. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  95. afx_msg void OnDestroy();
  96. //}}AFX_MSG
  97. afx_msg LRESULT OnDelegatedCmdMsg(WPARAM, LPARAM);
  98. afx_msg LRESULT OnPrepareToClose(WPARAM wParam = 0, LPARAM lParam = 0);
  99. DECLARE_MESSAGE_MAP()
  100. };
  101. /////////////////////////////////////////////////////////////////////////////
  102. #endif // __BOUNCE_H__