进制转换计算器
switch(char_radio)
{
case 'D':
value=value*10+0;
str.Format("%d",value);//将输入数据转化为字符串
if(i_chekinput==1)//
str=str+"d";
break;
case 'O':
value=value*8+0;
str.Format("%o",value);//将输入数据转化为字符串
m_button_F.EnableWindow(FALSE);
在程序运行过程中,数字键按钮的状态需要根据对三个单选按钮的选择而定。它们的事件函数代码分别如下:
voidCCalculatorDig::OnRADIOo()
{
char_radio='O';
value=0;
m_button_8.EnableWindow(FALSE);
CButton
m_Button_B
IDC_BUTTON_CC Nhomakorabeautton
m_Button_C
IDC_BUTTON_D
CButton
m_Button_D
IDC_BUTTON_E
CButton
m_Button_E
IDC_BUTTON_F
CButton
m_Button_F
IDC_EDIT_INPUT
CString
if(i_chekinput==1)//
str=str+"o";
break;
case 'H':
value=value*16+0;
str.Format("%x",value);//将输入数据转化为字符串
if(i_chekinput==1)//
str=str+"H";
break;
}
m_inputedit=str;
打开下图所示对话框,选择基本对话框,其余设置均采用默认操作,单击“完成”按钮完成整个工程的创建,如下图:
步骤三
在应用程序的主窗口的对话框资源中添加控件,并为对话框中的各个控件添加成员变量和消息响应函数。
在已生成的IDD_CALCUATOR_DIALOG对话框中添加控件资源如下表:
控件标题
控件类型
ID号
{
case 'D':
value=value*10+8;
str.Format("%d",value);//将输入数据转化为字符串
if(i_chekinput==0)//
str=str+"D";
break;
case 'H':
value=value*16+8;
str.Format("%x",value);//将输入数据转化为字符串
IDC_RADIO_H
BN_CLICKED
OnButtonRadioH()
成员变量如下表:
控件ID
数据类型
成员变量
IDC_BUTTON_8
CButton
m_Button_8
IDC_BUTTON_9
CButton
m_Button_9
IDC_BUTTON_A
CButton
m_Button_A
IDC_BUTTON_B
OnButton8()
IDC_BUTTON_9
BN_CLICKED
OnButton9()
IDC_BUTTON_A
BN_CLICKED
OnButtonA()
IDC_BUTTON_B
BN_CLICKED
OnButtonB()
IDC_BUTTON_C
BN_CLICKED
OnButtonC()
IDC_BUTTON_D
默认
八进制
单选按钮
IDC_RADIO_O
默认
十进制
单选按钮
IDC_RADIO_D
默认
十六进制
单选按钮
IDC_RADIO_H
默认
数据格式选择
群组框
IDC_STATIC
默认
输入数据加进制符号
复选框
IDC_CHECK_INPUT
默认
输出数据加进制符号
复选框
IDC_CHECK_OUTPUT
默认
添加成员变量和消息响应函数
m_button_A.EnableWindow(FALSE);
m_button_B.EnableWindow(FALSE);
m_button_C.EnableWindow(FALSE);
m_button_D.EnableWindow(FALSE);
m_button_E.EnableWindow(FALSE);
}
给数字按钮添加代码,0~7相似以0为例代码如下:
voidCCalculatorDig::OnButton0()
{
// TODO: Add your control notification handler code here
int i_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:表示选中
m_button_F.EnableWindow(FALSE);
}
voidCCalculatorDig::OnRADIOh()
{
char_radio='H';
value=0;
m_button_8.EnableWindow(TRUE);
m_button_9.EnableWindow(TRUE);
m_button_A.EnableWindow(TRUE);
OnButtonToO()
IDC_BUTTON_TO_H
BN_CLICKED
OnButtonToH()
IDC_BUTTON_TO_D
BN_CLICKED
OnButtonToD()
IDC_RADIO_D
BN_CLICKED
OnButtonRadioD()
IDC_RADIO_O
BN_CLICKED
OnButtonRadioO()
消息响应函数如下表:
控件ID
通知消息
消息响应函数
IDC_BUTTON_0
BN_CLICKED
OnButton0()
IDC_BUTTON_1
BN_CLICKED
OnButton1()
IDC_BUTTON_2
BN_CLICKED
OnButton2()
IDC_BUTTON_3
BN_CLICKED
OnButton3()
·0-9按钮和A-F按钮做为数字键盘
·“输入数据加进制符号”和“转换数据加进制符号”
·“数据格式显示选择”群组框中两个复选框作为一组。
应用程序实例界面
二.
步骤一
选择file|new命令,打开new对话框,选择project选项卡,设置工程名为Calculator,
然后单击OK按钮。如下图所示:
步骤二
默认
4
按钮
IDC_BUTTON_4
默认
5
按钮
IDC_BUTTON_5
默认
6
按钮
IDC_BUTTON_6
默认
7
按钮
IDC_BUTTON_7
默认
8
按钮
IDC_BUTTON_8
默认
9
按钮
IDC_BUTTON_9
默认
A
按钮
IDC_BUTTON_A
默认
B
按钮
IDC_BUTTON_B
默认
C
按钮
IDC_BUTTON_C
数字键按钮初始状态的设定。由于默认的进制为十进制,所以0~9折十个数字的默认状态是enable。因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将A~F的状态设置为disable。选择classview选项卡,双击CCalculatorDig
下面的OnInitDialog()并在return钱添加如下代码:
BN_CLICKED
OnButtonD()
IDC_BUTTON_E
BN_CLICKED
OnButtonE()
IDC_BUTTON_F
BN_CLICKED
OnButtonF()
IDC_BUTTON_RESET
BN_CLICKED
OnButtonReset()
IDC_BUTTON_TO_O
BN_CLICKED
风格
输入数据
静态文本
IDC_STATIC
默认
转换数据
静态文本
IDC_STATIC
默认
输入数据
编辑控件
IDC_EDIT_INPUT
默认
转换数据
编辑控件
IDC_EDIT_OUTPUT
默认
0
按钮
IDC_BUTTON_0
默认
1
按钮
IDC_BUTTON_1
默认
2
按钮
IDC_BUTTON_2
默认
3
按钮
IDC_BUTTON_3
m_button_E.EnableWindow(FALSE);
m_button_F.EnableWindow(FALSE);
}
voidCCalculatorDig::OnRADIOd()
{
char_radio='D';