void CjisuanqiDlg::OnBnClickedTui()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
if (!m_str.IsEmpty())//如果m_str內容不為空
{
m_str = m_str.Left(m_str.GetLength() - 1);//移除最右邊的一個字符
}
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum1()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "1";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum2()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "2";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum3()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "3";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum4()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "4";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum5()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "5";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum6()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "6";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum7()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "7";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum8()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "8";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum9()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "9";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedNum0()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = m_str + "0";
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedDian()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
if (-1 == m_str.Find('.'))
{
m_str = m_str + ".";
}
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedClear()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
m_str = "";//將對話框清零
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedJia()
{
// TODO: 在此添加控制元件通知處理程式代碼
SaveValue();
m_iSign = 0;
}
void CjisuanqiDlg::OnBnClickedJian()
{
// TODO: 在此添加控制元件通知處理程式代碼
SaveValue();
m_iSign = 1;
}
void CjisuanqiDlg::OnBnClickedCheng()
{
// TODO: 在此添加控制元件通知處理程式代碼
SaveValue();
m_iSign = 2;
}
void CjisuanqiDlg::OnBnClickedChu()
{
// TODO: 在此添加控制元件通知處理程式代碼
SaveValue();
m_iSign = 3;
}
void CjisuanqiDlg::SaveValue()
{
UpdateData(TRUE);
m_fNumber1 = atof(m_str);//顯示第一個輸入的數
m_str = "";//將編輯框清空
UpdateData(FALSE);
}
void CjisuanqiDlg::OnBnClickedDeng()
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(TRUE);
Calculator();
UpdateData(FALSE);
}
void CjisuanqiDlg::Calculator()
{
UpdateData(TRUE);
m_fNumber2 = atof(m_str);
double f = 0.0f;
switch (m_iSign)
{
case 0:
f = m_fNumber1 + m_fNumber2;
break;
case 1:
f = m_fNumber1 - m_fNumber2;
break;
case 2:
f = m_fNumber1 * m_fNumber2;
break;
case 3:
f = m_fNumber1 / m_fNumber2;
break;
}
UpdateData(FALSE);
}
uj5u.com熱心網友回復:
跟蹤除錯是基本技能。uj5u.com熱心網友回復:
先在函式里面設定斷點,看進不進,要不就是訊息回應函式錯了uj5u.com熱心網友回復:
你那個等于號控制元件回應函式里面的f是什么鬼東東,你得再設定個控制元件變數去存你取到的結果啊,不然你按了等于號,函式回應了,你值又沒有保存下來更新到控制元件。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
要有個控制元件存你計算出來的結果吧uj5u.com熱心網友回復:
將f的值給一個全域變數作為結果回傳~uj5u.com熱心網友回復:
Debug下F10/F11單步執行~轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/38798.html
標籤:基礎類
