|
  學了一周的MFC發現這東西只你要理解了他的脈絡。其實也不像想象中的那么難。在我的一路學習——放棄——學習............................
之后,現在的我才算是對mfc有了個初步了解,現還是處在入門階段。
這個程序中只有下面的部分是我自己寫的,別的都是用vs 2008下的MFC應用程序向導生成的。
void CWYZDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知處理程序代碼
//方法一
//GetDlgItem(IDC_EDIT3)->GetWindowTextA(str3,10);//GetDlgItem(IDC) 返回一個CWind指針用他調用GetWindowTextA(char*,size)來獲取控件的內容
// GetDlgItem(IDC_EDIT1)->GetWindowTextA(str1,10);
//GetDlgItem(IDC_EDIT2)->GetWindowTextA(str2,2);
//方法二
GetDlgItemTextA(IDC_EDIT3,str3,10);
GetDlgItemTextA(IDC_EDIT2,str2,2);
GetDlgItemTextA(IDC_EDIT1,str1,10);
//方法三
//num1=GetDlgItemInt(IDC_EDIT1);
//num3=GetDlgItemInt(IDC_EDIT3);
num1=atof(str1);//將字串轉換成數字
num3=atof(str3);
if(*str2==0) return ;
if(*str2=='+'||*str2=='-'||*str2=='*'||*str2=='/')
{
switch(*str2)
{
case '+' :GetDlgItem(IDC_STATIC1)->SetWindowTextA("被加數") ;
GetDlgItem(IDC_STATIC2)->SetWindowTextA(" 加號 ") ;
GetDlgItem(IDC_STATIC3)->SetWindowTextA(" 加數 ") ;
GetDlgItem(IDC_STATIC)->SetWindowTextA(" 和 ") ;
break;
case '-': GetDlgItem(IDC_STATIC1)->SetWindowTextA("被減數") ;
GetDlgItem(IDC_STATIC2)->SetWindowTextA(" 減號 ") ;
GetDlgItem(IDC_STATIC3)->SetWindowTextA(" 減數 ") ;
GetDlgItem(IDC_STATIC)->SetWindowTextA(" 差 ") ;
break;
case '*': GetDlgItem(IDC_STATIC1)->SetWindowTextA("被乘數") ;
GetDlgItem(IDC_STATIC2)->SetWindowTextA(" 乘號 ") ;
GetDlgItem(IDC_STATIC3)->SetWindowTextA(" 乘數 ") ;
GetDlgItem(IDC_STATIC)->SetWindowTextA(" 積 ") ;
break;
case '/': GetDlgItem(IDC_STATIC1)->SetWindowTextA("被除數") ;
GetDlgItem(IDC_STATIC2)->SetWindowTextA(" 除號 ") ;
GetDlgItem(IDC_STATIC3)->SetWindowTextA(" 除數 ") ;
GetDlgItem(IDC_STATIC)->SetWindowTextA(" 商 ") ;
break;
default :MessageBoxA( "出現異常","警告");
}
}
//UpdateData();
switch(*str2)
{
case '+' :
num4=num3+num1;break;
case '-':
num4=num1-num3;break;
case '*':
num4=num3*num1;break;
case '/':
num4=num1/num3;break;
default :MessageBoxA( "運算符輸入錯誤","警告");
return ;
}
//UpdateData(FALSE);
// itoa(num4,str4,10);
str4=fundz(num4);
GetDlgItem(IDC_EDIT4)->SetWindowTextA(str4); //將計算后的結果存對編譯框中
}
void CWYZDlg::OnBnClickedButton2()//用于清空
{
// TODO: 在此添加控件通知處理程序代碼
GetDlgItem(IDC_EDIT1)->SetWindowTextA(0);
GetDlgItem(IDC_EDIT2)->SetWindowTextA(0);
GetDlgItem(IDC_EDIT3)->SetWindowTextA(0);
GetDlgItem(IDC_EDIT4)->SetWindowTextA(0);
GetDlgItem(IDC_STATIC1)->SetWindowTextA("數值1");
GetDlgItem(IDC_STATIC2)->SetWindowTextA("運算符");
GetDlgItem(IDC_STATIC3)->SetWindowTextA("數值2");
GetDlgItem(IDC_STATIC)->SetWindowTextA("結果");
}
char * CWYZDlg::fundz(double db)
{
char cc[100];
sprintf(cc,"%.7g",db);
return cc;
}
void CWYZDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知處理程序代碼
MessageBoxA(" 此計算器為一毛制做 \n\n 現在只能算加減乘除法數\n值\n 過大會出現精度上的誤差。\n別的功能會在學習中不斷添\n加。","提示");
}

經過改進后的,新版本。計算器。
想看看的可以去這里下載。原代碼(工程)http://u.115.com/file/f8b98da8e2 mfc寫的一個簡單計算器.zip
想要用用的可以去這里下載 http://u.115.com/file/f8e853478b Jsq.exe
|
|