smilectl.h
上传用户:biuytresa
上传日期:2007-12-07
资源大小:721k
文件大小:2k
源码类别:

DNA

开发平台:

Visual C++

  1. // SmileCtl.h : Declaration of the CSmileCtrl OLE control class.
  2. /////////////////////////////////////////////////////////////////////////////
  3. // CSmileCtrl : See SmileCtl.cpp for implementation.
  4. class CSmileCtrl : public COleControl
  5. {
  6. DECLARE_DYNCREATE(CSmileCtrl)
  7. // Constructor
  8. public:
  9. CSmileCtrl();
  10. // Attributes
  11. protected:
  12. BOOL    m_bWink;        // Determines if Eye should 'blink'
  13. // Overrides
  14. public:
  15. // Drawing function
  16. virtual void OnDraw(
  17. CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
  18. // Persistence
  19. virtual void DoPropExchange(CPropExchange* pPX);
  20. // Reset control state
  21. virtual void OnResetState();
  22. // Implementation
  23. protected:
  24. ~CSmileCtrl();
  25. // Hit Testing Helper
  26. BOOL InEllipse(const CPoint& pt, int x1, int y1, int x2, int y2);
  27. DECLARE_OLECREATE_EX(CSmileCtrl)    // Class factory and guid
  28. DECLARE_OLETYPELIB(CSmileCtrl)      // GetTypeInfo
  29. #ifndef _RUNTIME
  30. DECLARE_PROPPAGEIDS(CSmileCtrl)     // Property page IDs
  31. #endif
  32. DECLARE_OLECTLTYPE(CSmileCtrl)      // Type name and misc status
  33. // Message maps
  34. //{{AFX_MSG(CSmileCtrl)
  35. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  36. //}}AFX_MSG
  37. DECLARE_MESSAGE_MAP()
  38. // Dispatch maps
  39. //{{AFX_DISPATCH(CSmileCtrl)
  40. BOOL m_bSad;
  41. afx_msg void OnSadChanged();
  42. afx_msg void Beep();
  43. afx_msg void Wink(BOOL bWink);
  44. //}}AFX_DISPATCH
  45. DECLARE_DISPATCH_MAP()
  46. afx_msg void AboutBox();
  47. // Event maps
  48. //{{AFX_EVENT(CSmileCtrl)
  49. void FireOutside()
  50. {FireEvent(eventidOutside,EVENT_PARAM(VTS_NONE));}
  51. void FireInside(OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
  52. {FireEvent(eventidInside,EVENT_PARAM(VTS_XPOS_PIXELS  VTS_YPOS_PIXELS), x, y);}
  53. //}}AFX_EVENT
  54. DECLARE_EVENT_MAP()
  55. // Dispatch and event IDs
  56. public:
  57. enum {
  58. //{{AFX_DISP_ID(CSmileCtrl)
  59. dispidSad = 1L,
  60. dispidBeep = 2L,
  61. dispidWink = 3L,
  62. eventidOutside = 1L,
  63. eventidInside = 2L,
  64. //}}AFX_DISP_ID
  65. };
  66. };