1 / 31
文档名称:

第11讲进制转换计算器.ppt

格式:ppt   大小:3,095KB   页数:31页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第11讲进制转换计算器.ppt

上传人:我是药仙 2022/4/22 文件大小:3.02 MB

下载得到文件列表

第11讲进制转换计算器.ppt

相关文档

文档介绍

文档介绍:Cute
Uintage style
第11讲进制转换计算器
Add your text here and write down your opninon thank you add your text here
U
i
n
e)
{
int result=0; //结果变量
int num = 0; //次幂变量
while (value != 0)
{
int low = value%10; //取个位数
int mul = 1;
for(int i=0;i<num;i++) //该位数为8的num次幂
mul *= 8;
result = result + low*mul; //累加结果
num++;
value = value/10; //去掉个位数
}
return result; //返回计算结果
}
12
1. 单选按钮控件
(6)修改计算过程,在OnBequal()函数做如下修改:
void CIntegerCalculatorDlg::OnBequal()
{
……
m_nOperand2 = m_nValue;
if(m_nHex == 1) //如果是8进制
{
m_nOperand1 = octToDec(m_nOperand1); //将运算数转换为10进制
m_nOperand2 = octToDec(m_nOperand2);
}
switch(m_nOperator) {
……
}
if(m_nHex == 1) //如果是8进制
{
char s8[30];
itoa(m_nValue,s8,8); //将计算结果以8进制显示
m_nValue = atoi(s8);
}
……
}
13
2. 复选框按钮
为了实现进制功能的开启与关闭,我们采用复选框控件作为切换控件。
标准的复选框在文本标签旁边有一个方框,当该选项被选中时,方框内出现一个“√”号,当该项未被选中时,方框内空白。
14
2. 复选框按钮
添加复选框的操作步骤:
(1)打开Integer Calculator工程,添加复选框控件IDC_CHECKHEX。
15
2. 复选框按钮
(2)打开ClassWizard的Message Maps选项卡,为IDC_ CHECKHEX添加BN_CLICKED消息,生成OnCheckhex ()函数。
16
2. 复选框按钮
(3)在OnCheckhex ()函数中添加如下代码 :
void CIntegerCalculatorDlg::OnCheckhex()
{
CButton *pHex = ((CButton*)GetDlgItem(IDC_CHECKHEX));
//如果复选框选中
if(BST_CHECKED==pHex->GetCheck())
{
CButton *pDec = ((CButton*)GetDlgItem(IDC_RADIODEC));
pDec->EnableWindow(TRUE);
CButton *pOct = ((CButton*)GetDlgItem(IDC_RADIOOCT));
pOct->EnableWindow(TRUE);
}
GetCheck()函数的功能是获得复选框的选中状态,其函数声明为:
int GetCheck() const;
其返回值为
0:按钮处于未选中状态。
1:按钮处于选中状态。
2:按钮状态不定(仅当按钮风格为BS_3STATE或BS_AUTO3STATE时)如果按钮是其它风格,则返回0。
为了代码清晰,系统为其做了宏定义:
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define BST_INDETERMINATE 0x0002
17
2. 复选框按钮
(3)在OnCheckhex ()函数中添加如下代码 :
else
{
CButton *pDec = ((CButton*)GetDlgItem(IDC_RADIODEC));
pDec->EnableWindow(FALSE);
CButton *pOct = ((CButton*)GetDlgItem(IDC_RADIOOCT));
pOct->EnableWindow(FALSE);
}
}
18
2. 复选框按钮
(4)为了使对话框在初始运行时保持正常状态,需在OnInitDialog()函