#define IDC_KEY_CLEAR 1017
#define IDC_KEY_SQRT 1018
#define IDC_KEY_FACT 1019
#define IDC_KEY_SIGN 1020
#define IDC_STATIC_OUTPUT 2001
有三组需要连续的 ID,分别是
IDC_KEY_1 到 IDC_KEY_0;
IDC_KEY_EQUAL 到 IDC_KEY_DIVIDE;
IDC_KEY_SQRT 到 IDC_KEY_SIGN
3.初始化
在消息 WM_INITDIALOG 中调用函数 Initialization。
8.3.2 数据设计
1.常量
#define MAX_LEN 100 //结果缓冲区最大长度
#define MAX_DPD 0.00001f //操作数小数最大长度
#define MAX_VALUE 100000000000000 //计算器最大操作数
#define MIN_VALUE -100000000000000 //计算器最小操作数
2.枚举类型
四则运算枚举类型
enum Operator{OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide};
单目运算枚举类型
enum MonoOperator{OpSqrt,OpFact,OpSign};
/错误枚举类型
enum CalcError{ErrNone,ErrDivideByZero};
3.全局变量
double g_fOperand = 0; //操作数
double g_fAccum = 0; //结果
BOOL g_bCoff = 0; //小数标志
double g_fCoff = 0.1f; //小数点位置
Operator g_Operator = OpNone; //当前操作
CalcError g_errorState = ErrNone; //操作状态
BOOL g_bOperandAvil = FALSE; //操作数有效标志
BOOL g_MonoOperated = FALSE; //单目操作标志
char g_Result[MAX_LEN]; //结果缓冲区
4