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

Windows编程

开发平台:

Visual C++

  1. // calcdlg.h : header file
  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. // 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. };