CString UpNum(char StrInput)
{
switch(StrInput)
{
case '0':
return("零"); //UpNum = '零';
break;
case '1':
return("壹"); //UpNum = '壹';
break;
case '2':
return("贰"); //UpNum = '贰';
break;
case '3':
return("叁"); //UpNum = '叁';
break;
case '4':
return("肆"); //UpNum = '肆';
break;
case '5':
return("伍"); //UpNum = '伍';
break;
case '6':
return("陆"); //UpNum = '陆';
break;
case '7':
return("柒"); //UpNum = '柒';
break;
case '8':
return("捌"); //UpNum = '捌';
break;
case '9':
return("玖"); //UpNum = '玖';
break;
//default:
}
}CString UpUnit(int IntInput, int IntFlag = 0)
{
if (IntFlag = 0)
switch(IntInput)
{
case 1:
return("元"); //UpUnit = '元';
break;
case 2:
return("拾"); //UpUnit = '拾';
break;
case 3:
return("佰"); //UpUnit = '佰';
break;
case 4:
return("仟"); //UpUnit = '仟';
break;
case 5:
return("万"); //UpUnit = '万';
break;
case 6:
return("拾"); //UpUnit = '拾';
break;
case 7:
return("佰"); //UpUnit = '佰';
break;
case 8:
return("仟"); //UpUnit = '仟';
break;
case 9:
return("亿"); //UpUnit = '亿';
break;
case 10:
return("拾"); //UpUnit = '拾';
break;
case 11:
return("佰"); //UpUnit = '佰';
break;
case 12:
return("仟"); //UpUnit = '仟';
break;
// default:
}
else
switch(IntInput)
{
case 1:
return("角"); //UpUnit = '角';
break;
case 2:
return("分"); //UpUnit = '分';
break;
//default:
}
}CString GetUpper(CString& StrInput , int IntFlag = 0)
{
CString StrResult;
char StrSwap;
int i =1;
bool BlnOFlag =0;
if (IntFlag == 0) { //整数部分的处理:处理到仟亿位
while (i <= StrInput.GetLength())
{
StrSwap =(char)StrInput.GetAt(StrInput.GetLength()-i); //(StrInput.Right(i)).Left(1); //left(right(StrInput, i), 1);
if ((StrSwap == '0' && i == 5) || (StrSwap == '0' && i == 9))
{
StrResult=UpUnit(i, 0)+UpNum(StrSwap)+StrResult; //StrResult= strcat(strcat(UpUnit(i, 0),UpNum(StrSwap)),StrResult);
BlnOFlag = 1;
}
if (StrSwap == '0' && BlnOFlag == 0)
{
StrResult=UpNum(StrSwap)+StrResult; //StrResult= strcat(UpNum(StrSwap) , StrResult);
BlnOFlag = 1;
}
if (StrSwap != '0')
{
StrResult=UpNum(StrSwap)+UpUnit(i, 0)+StrResult; //StrResult=strcat(strcat(UpNum(StrSwap) , UpUnit(i, 0)) , StrResult);
BlnOFlag = 0;
}
//ElseIf StrSwap = 0 And BlnOFlag = True Then
i++;
}
return StrResult; }
else
while (i <= StrInput.GetLength()) //小数部分的处理
{
StrSwap = StrInput.GetAt(i-1); //(StrInput.Left(i)).Right(1); //right(left(StrInput, i), 1);
StrResult=StrResult+UpNum(StrSwap)+ UpUnit(i, 1); //StrResult=strcat(strcat(StrResult , UpNum(StrSwap)) , UpUnit(i, 1));
i++;
}
return StrResult;
}void DlgSwitch::OnOK()
{
// TODO: Add extra validation here
DlgSwitch thedlgswitch;
CString StrInt;
CString StrDim;
int i;
UpdateData(TRUE);
if (thedlgswitch.m_moneyold.Find('.') > 0 )
{
i=thedlgswitch.m_moneyold.Find('.');
StrInt = thedlgswitch.m_moneyold.Mid(0, i);
StrDim = thedlgswitch.m_moneyold.Mid(i,thedlgswitch.m_moneyold.GetLength()-i);
}
else
StrInt = thedlgswitch.m_moneyold;
if (StrDim.IsEmpty())
thedlgswitch.m_moneynew=GetUpper(StrInt, 0);
else
thedlgswitch.m_moneynew=GetUpper(StrInt, 0) + GetUpper(StrDim, 1);
//thedlgswitch.m_moneynew=strcat(GetUpper(StrInt, 0) , GetUpper(StrDim, 1));
UpdateData(FALSE);
CDialog::OnOK();
Invalidate();
}
{
switch(StrInput)
{
case '0':
return("零"); //UpNum = '零';
break;
case '1':
return("壹"); //UpNum = '壹';
break;
case '2':
return("贰"); //UpNum = '贰';
break;
case '3':
return("叁"); //UpNum = '叁';
break;
case '4':
return("肆"); //UpNum = '肆';
break;
case '5':
return("伍"); //UpNum = '伍';
break;
case '6':
return("陆"); //UpNum = '陆';
break;
case '7':
return("柒"); //UpNum = '柒';
break;
case '8':
return("捌"); //UpNum = '捌';
break;
case '9':
return("玖"); //UpNum = '玖';
break;
//default:
}
}CString UpUnit(int IntInput, int IntFlag = 0)
{
if (IntFlag = 0)
switch(IntInput)
{
case 1:
return("元"); //UpUnit = '元';
break;
case 2:
return("拾"); //UpUnit = '拾';
break;
case 3:
return("佰"); //UpUnit = '佰';
break;
case 4:
return("仟"); //UpUnit = '仟';
break;
case 5:
return("万"); //UpUnit = '万';
break;
case 6:
return("拾"); //UpUnit = '拾';
break;
case 7:
return("佰"); //UpUnit = '佰';
break;
case 8:
return("仟"); //UpUnit = '仟';
break;
case 9:
return("亿"); //UpUnit = '亿';
break;
case 10:
return("拾"); //UpUnit = '拾';
break;
case 11:
return("佰"); //UpUnit = '佰';
break;
case 12:
return("仟"); //UpUnit = '仟';
break;
// default:
}
else
switch(IntInput)
{
case 1:
return("角"); //UpUnit = '角';
break;
case 2:
return("分"); //UpUnit = '分';
break;
//default:
}
}CString GetUpper(CString& StrInput , int IntFlag = 0)
{
CString StrResult;
char StrSwap;
int i =1;
bool BlnOFlag =0;
if (IntFlag == 0) { //整数部分的处理:处理到仟亿位
while (i <= StrInput.GetLength())
{
StrSwap =(char)StrInput.GetAt(StrInput.GetLength()-i); //(StrInput.Right(i)).Left(1); //left(right(StrInput, i), 1);
if ((StrSwap == '0' && i == 5) || (StrSwap == '0' && i == 9))
{
StrResult=UpUnit(i, 0)+UpNum(StrSwap)+StrResult; //StrResult= strcat(strcat(UpUnit(i, 0),UpNum(StrSwap)),StrResult);
BlnOFlag = 1;
}
if (StrSwap == '0' && BlnOFlag == 0)
{
StrResult=UpNum(StrSwap)+StrResult; //StrResult= strcat(UpNum(StrSwap) , StrResult);
BlnOFlag = 1;
}
if (StrSwap != '0')
{
StrResult=UpNum(StrSwap)+UpUnit(i, 0)+StrResult; //StrResult=strcat(strcat(UpNum(StrSwap) , UpUnit(i, 0)) , StrResult);
BlnOFlag = 0;
}
//ElseIf StrSwap = 0 And BlnOFlag = True Then
i++;
}
return StrResult; }
else
while (i <= StrInput.GetLength()) //小数部分的处理
{
StrSwap = StrInput.GetAt(i-1); //(StrInput.Left(i)).Right(1); //right(left(StrInput, i), 1);
StrResult=StrResult+UpNum(StrSwap)+ UpUnit(i, 1); //StrResult=strcat(strcat(StrResult , UpNum(StrSwap)) , UpUnit(i, 1));
i++;
}
return StrResult;
}void DlgSwitch::OnOK()
{
// TODO: Add extra validation here
DlgSwitch thedlgswitch;
CString StrInt;
CString StrDim;
int i;
UpdateData(TRUE);
if (thedlgswitch.m_moneyold.Find('.') > 0 )
{
i=thedlgswitch.m_moneyold.Find('.');
StrInt = thedlgswitch.m_moneyold.Mid(0, i);
StrDim = thedlgswitch.m_moneyold.Mid(i,thedlgswitch.m_moneyold.GetLength()-i);
}
else
StrInt = thedlgswitch.m_moneyold;
if (StrDim.IsEmpty())
thedlgswitch.m_moneynew=GetUpper(StrInt, 0);
else
thedlgswitch.m_moneynew=GetUpper(StrInt, 0) + GetUpper(StrDim, 1);
//thedlgswitch.m_moneynew=strcat(GetUpper(StrInt, 0) , GetUpper(StrDim, 1));
UpdateData(FALSE);
CDialog::OnOK();
Invalidate();
}
void UpNum(char*strNew,char*strOld)
{
int i,t,index=0,len=strlen(strOld); char *c1[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char *c2[]={"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元"};
char *c3[]={"角","分"}; for(t=0;t<len;t++){
if(strOld[t]=='.'){
break;
}
}
index=12-t;
strNew[0]='\0';
for(i=0;i<t;i++,index++){
strcat(strNew,c1[strOld[i]-0x30]);
strcat(strNew,c2[index]);
}
index=0;
for(i=t+1;i<len;i++,index++){
strcat(strNew,c1[strOld[i]-0x30]);
strcat(strNew,c3[index]);
}
}调用strNew为大写金额
char strNew[100],strOld[100]="1234567890.24";
UPNum(strNew,strOld);
{
char szUpperNum[] = "零壹贰叁肆伍陆柒捌玖";
char szNum[100];
char szTemp[10];
char szTempNum[100];
CString CsReturn;sprintf(szNum,"%f",fNum);
int nIndex = 0;do while( szNum[nIndex] != '\0')
{
strcpy(szTemp,szNum[nIndex],1);
strcpy(szTempNum[nIndex*2],szUpperNum[atoi(szTemp)*2],2);
}
CsReturn = szTempNum;
}
你把CDialog::OnOK那行注释掉怎么样
还有,不明白你的UpdateData(FALSE)是什么意思,你的StrDim是临时变量,它怎么才能够在对话框中显示阿?