用VC6.0做一个可视化界面计算器的详细过程及相应代码
时间: 2024-02-26 19:55:54 浏览: 247
好的,下面是用VC6.0做一个可视化界面计算器的详细过程及相应代码:
1. 打开VC6.0,创建一个新的MFC应用程序项目。
2. 在应用程序向导中,选择“单文档”和“视图”选项,并在下一步中选择“基于对话框”的应用程序类型。
3. 选择使用默认的类名和文件名,并点击下一步。
4. 在下一步中,勾选“添加菜单项”和“添加工具栏”,并点击下一步。
5. 选择“无文档视图”,并在下一步中选择“添加一个对话框”。
6. 在下一步中,选择“使用MFC标准库”和“包括活动X控件”,并点击完成。
7. 打开资源视图,双击IDD_CALCULATOR对话框,打开对话框编辑器。
8. 在对话框中添加一个编辑框控件,用于显示计算结果。将其ID设置为IDC_RESULT。
9. 在对话框中添加多个按钮控件,用于输入数字和运算符。将其ID设置为相应的值,如IDC_BUTTON_0、IDC_BUTTON_1等。
10. 右键单击按钮控件,选择“添加事件处理程序”,并在下拉框中选择“BN_CLICKED”事件。点击添加,打开ClassWizard。
11. 在ClassWizard中,选择“消息映射”标签页,并在下拉框中选择对应的按钮控件ID。点击“添加函数”,输入函数名称并点击确定。
12. 在对应的函数中,通过GetDlgItemText函数获取到编辑框控件中的字符串,并将其转换为数字。根据不同的按钮控件ID执行不同的计算操作,最终将结果显示在编辑框中。
13. 完成程序的编写后,编译并运行程序,即可看到可视化界面的计算器。
下面是相应的代码:
在IDD_CALCULATOR对话框类中添加以下成员变量:
```
double m_num1, m_num2; // 用于存储两个操作数
char m_operator; // 用于存储运算符
BOOL m_bNewInput; // 用于判断是否需要清空编辑框
```
在OnInitDialog函数中初始化成员变量:
```
m_num1 = 0;
m_num2 = 0;
m_operator = ' ';
m_bNewInput = TRUE;
```
在相应的按钮控件事件处理函数中添加以下代码:
```
CString strText;
GetDlgItemText(IDC_RESULT, strText); // 获取编辑框的内容
double num = atof(strText); // 将字符串转换为数字
switch (nID)
{
case IDC_BUTTON_0:
case IDC_BUTTON_1:
case IDC_BUTTON_2:
case IDC_BUTTON_3:
case IDC_BUTTON_4:
case IDC_BUTTON_5:
case IDC_BUTTON_6:
case IDC_BUTTON_7:
case IDC_BUTTON_8:
case IDC_BUTTON_9:
if (m_bNewInput) // 如果需要清空编辑框
{
strText.Empty();
m_bNewInput = FALSE;
}
strText += (TCHAR)(nID - IDC_BUTTON_0 + '0'); // 添加数字字符
break;
case IDC_BUTTON_PLUS:
case IDC_BUTTON_MINUS:
case IDC_BUTTON_MULTIPLY:
case IDC_BUTTON_DIVIDE:
if (m_operator != ' ') // 如果已经有运算符了,则进行计算
{
m_num2 = num;
switch (m_operator)
{
case '+':
m_num1 += m_num2;
break;
case '-':
m_num1 -= m_num2;
break;
case '*':
m_num1 *= m_num2;
break;
case '/':
m_num1 /= m_num2;
break;
}
m_operator = ' ';
m_bNewInput = TRUE;
}
m_num1 = num;
m_operator = (TCHAR)nID; // 存储运算符
m_bNewInput = TRUE;
break;
case IDC_BUTTON_EQUAL:
m_num2 = num;
switch (m_operator)
{
case '+':
m_num1 += m_num2;
break;
case '-':
m_num1 -= m_num2;
break;
case '*':
m_num1 *= m_num2;
break;
case '/':
m_num1 /= m_num2;
break;
}
m_operator = ' ';
m_bNewInput = TRUE;
break;
case IDC_BUTTON_CLEAR:
m_num1 = 0;
m_num2 = 0;
m_operator = ' ';
m_bNewInput = TRUE;
strText.Empty(); // 清空编辑框
break;
}
strText.TrimLeft(); // 去掉左侧的空格
strText.TrimRight(); // 去掉右侧的空格
SetDlgItemText(IDC_RESULT, strText); // 显示计算结果
```
以上就是用VC6.0做一个可视化界面计算器的详细过程及相应代码。
阅读全文