mfc入门(简易计算器)源码
时间: 2023-08-28 17:02:14 浏览: 121
MFC入门源码可以是一个简单的计算器程序,下面是一个可能的示例:
```cpp
#include <afxwin.h>
class CCalculatorApp : public CWinApp
{
public:
BOOL InitInstance()
{
CFrameWnd* pFrame = new CFrameWnd;
pFrame->Create(NULL, _T("简易计算器")); // 创建窗口
m_pMainWnd = pFrame; // 将窗口设置为主窗口
return TRUE;
}
};
class CCalculatorWnd : public CFrameWnd
{
public:
CCalculatorWnd()
{
// 创建按钮
for (int i = 0; i < 10; i++) {
m_btnNumber[i].Create(_T(""), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10 + i * 40, 40, 40 + i * 40, 80), this, IDC_NUMBER_0 + i);
m_btnNumber[i].SetFont(&m_font);
}
m_btnNumber[0].SetWindowText(_T("0"));
m_btnAddition.Create(_T("+"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(160, 40, 200, 80), this, IDC_ADDITION);
m_btnSubtraction.Create(_T("-"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(160, 80, 200, 120), this, IDC_SUBTRACTION);
m_btnEqual.Create(_T("="), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(120, 120, 200, 160), this, IDC_EQUAL);
// 创建文本框
m_editResult.Create(ES_RIGHT | WS_CHILD | WS_VISIBLE | ES_READONLY, CRect(10, 10, 200, 30), this, IDC_EDIT_RESULT);
m_editResult.SetFont(&m_font);
m_editResult.SetWindowText(_T("0"));
}
afx_msg void OnButtonClicked(UINT nID)
{
CString strText;
m_editResult.GetWindowText(strText); // 获取文本框内容
int nNumber = nID - IDC_NUMBER_0; // 数字按钮的ID是连续的,通过减去IDC_NUMBER_0来获取对应的数字
if (strText == _T("0")) {
strText = CString(nNumber);
}
else {
strText += CString(nNumber);
}
m_editResult.SetWindowText(strText); // 将结果显示在文本框中
}
DECLARE_MESSAGE_MAP()
private:
CButton m_btnNumber[10];
CButton m_btnAddition;
CButton m_btnSubtraction;
CButton m_btnEqual;
CEdit m_editResult;
CFont m_font;
};
BEGIN_MESSAGE_MAP(CCalculatorWnd, CFrameWnd)
ON_CONTROL_RANGE(BN_CLICKED, IDC_NUMBER_0, IDC_NUMBER_9, &CCalculatorWnd::OnButtonClicked)
END_MESSAGE_MAP()
CCalculatorApp theApp;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
CString szAppName = _T("简易计算器");
theApp.m_hInstance = hInstance;
return theApp.Run();
}
```
这个源码使用MFC框架创建了一个简易计算器窗口,其中包含了0到9的数字按钮、加号按钮、减号按钮和等号按钮。用户点击数字按钮时,相应的数字会显示在文本框中。
除此之外,源码还实现了按钮点击事件的处理函数`OnButtonClicked`,当数字按钮被点击时,它将获取文本框中的内容,然后将对应的数字添加到内容后面,然后再次将结果显示在文本框中。
此外,源码中还声明了一个`CCalculatorApp`类作为应用程序的入口点,并在`InitInstance`函数中创建了窗口,并将该窗口设置为主窗口。
阅读全文