MFC 入門試玩 簡單加數程式


知道 MFC 已經是很久很久的事情了,每次到書店也總是留意他的存在,可是自己卻遲遲沒有動手去買一本真正的書,拿在手中 慢慢的 K ,也許是自知道自己的 C/C++ 功力不到家,再說就是我從來就沒真正去接觸這門藝術學問,太高深了吧..

好啦,回正題,由於是入門,所以只寫了簡單的東西,如果是高手請多多指教..
(主要是重要部份代碼節錄)
(還有就是 string to double, double to string , 用的是 CString)

第一種取值和賦值方法 (直接利用函數?)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void CTestMFCDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
//OnOK();

// Define variable number 1 & number 2 & totalStr
CString str1, str2, totalStr;

// Set variable
GetDlgItemText(IDC_EDIT1, str1);
GetDlgItemText(IDC_EDIT2, str2);

// Display message box to show number 1 & number 2
/*
MessageBox(str1, TEXT("Tips"), MB_YESNO | MB_ICONQUESTION);
MessageBox(str2, TEXT("Tips"), MB_YESNO | MB_ICONQUESTION);
*/

// Change string to
double num1 = _wtof(str1);
double num2 = _wtof(str2);
double total= num1 + num2;

//
totalStr.Format(_T("%.2f"), total);
SetDlgItemText(IDC_EDIT3, totalStr);
}

第二種取值和賦值方法 (利用控件 ID)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void CTestMFCDlg::OnBnClickedOk()
{
//
CString str1, str2, totalStr;

//
CEdit * pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
CEdit * pEdit2 = (CEdit*)GetDlgItem(IDC_EDIT2);
CEdit * pEdit3 = (CEdit*)GetDlgItem(IDC_EDIT3);

//
pEdit1->GetWindowTextW(str1);
pEdit2->GetWindowTextW(str2);

//
double num1 = _wtof(str1);
double num2 = _wtof(str2);
double total= num1 + num2;

//
totalStr.Format(_T("%.2f"), total);
pEdit3->SetWindowTextW(totalStr);
}

第三種取值和賦值方法 (利用控件的變量和類型)

1
2
3
4
5
6
7
8
9
/* 
* TestMFCDlg.h
*/

public:
afx_msg void OnBnClickedOk();
CEdit m_edit1;
CEdit m_edit2;
CEdit m_edit3;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* 
* TestMFCDlg.cpp
*/

void CTestMFCDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT1, m_edit1);
DDX_Control(pDX, IDC_EDIT2, m_edit2);
DDX_Control(pDX, IDC_EDIT3, m_edit3);
}

void CTestMFCDlg::OnBnClickedOk()
{
//
CString str1, str2, totalStr;

//
m_edit1.GetWindowTextW(str1);
m_edit2.GetWindowTextW(str2);

//
double num1 = _wtof(str1);
double num2 = _wtof(str2);
double total= num1 + num2;

//
totalStr.Format(_T("%.2f"), total);

//
m_edit3.SetWindowTextW(totalStr);
}