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

DNA

开发平台:

Visual C++

  1. // calcdlg.h : header file
  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. // CCalcDlg dialog
  14. enum Operator { OpNone, OpAdd, OpSubtract, OpMultiply, OpDivide };
  15. enum CalcError { ErrNone, ErrDivideByZero };
  16. class CCalcDlg : public CDialog
  17. {
  18. // Construction
  19. public:
  20. CCalcDlg(CWnd* pParent = NULL); // standard constructor
  21. // Operations
  22. BOOL RegisterActive();
  23. // Dialog Data
  24. //{{AFX_DATA(CCalcDlg)
  25. enum { IDD = IDD_MFCCALC_DIALOG };
  26. // NOTE: the ClassWizard will add data members here
  27. //}}AFX_DATA
  28. // ClassWizard generated virtual function overrides
  29. //{{AFX_VIRTUAL(CCalcDlg)
  30. public:
  31. virtual BOOL PreTranslateMessage(MSG* pMsg);
  32. protected:
  33. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  34. virtual void PostNcDestroy();
  35. //}}AFX_VIRTUAL
  36. // Implementation
  37. protected:
  38. virtual ~CCalcDlg();
  39. HICON m_hIcon;
  40. HACCEL m_hAccel;
  41. BOOL m_bAutoDelete;     // delete in PostNcDestroy
  42. DWORD m_dwRegister;     // active registration magic cookie
  43. // calculator state
  44. long m_accum;
  45. long m_operand;
  46. Operator m_operator;
  47. CalcError m_errorState;
  48. BOOL m_bOperandAvail;
  49. // helper functions
  50. void PerformOperation();
  51. void ClickedNumber(long lNum);
  52. void UpdateDisplay();
  53. public:
  54. // Generated message map functions
  55. //{{AFX_MSG(CCalcDlg)
  56. virtual BOOL OnInitDialog();
  57. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  58. afx_msg void OnPaint();
  59. afx_msg HCURSOR OnQueryDragIcon();
  60. afx_msg void OnClickedNumber(UINT nID);
  61. afx_msg void OnClickedClear();
  62. afx_msg void OnClickedDivide();
  63. afx_msg void OnClickedEqual();
  64. afx_msg void OnClickedMinus();
  65. afx_msg void OnClickedPlus();
  66. afx_msg void OnClickedTimes();
  67. virtual void OnCancel();
  68. virtual void OnOK();
  69. afx_msg void OnSetFocusAccum();
  70. //}}AFX_MSG
  71. DECLARE_MESSAGE_MAP()
  72. // to be OLE creatable, it must be DYNCREATE and OLECREATE
  73. DECLARE_DYNCREATE(CCalcDlg)
  74. DECLARE_OLECREATE(CCalcDlg)
  75. public:
  76. // Generated OLE dispatch map functions
  77. //{{AFX_DISPATCH(CCalcDlg)
  78. afx_msg long GetAccum();
  79. afx_msg void SetAccum(long nNewValue);
  80. afx_msg long GetOperand();
  81. afx_msg void SetOperand(long nNewValue);
  82. afx_msg short GetOperation();
  83. afx_msg void SetOperation(short nNewValue);
  84. afx_msg BOOL GetVisible();
  85. afx_msg void SetVisible(BOOL bNewValue);
  86. afx_msg BOOL Evaluate();
  87. afx_msg void Clear();
  88. afx_msg void Display();
  89. afx_msg void Close();
  90. afx_msg BOOL Button(LPCTSTR szButton);
  91. //}}AFX_DISPATCH
  92. DECLARE_DISPATCH_MAP()
  93. };