ON_BN_CLICKED(IDC_BUTTON1, &CSetDlg::OnBnClickedButton1)
时间: 2024-05-19 17:14:23 浏览: 34
This code is a message handler for when the user clicks on a button with the ID "IDC_BUTTON1". When the button is clicked, the function specified in this message handler will be executed. The specific function that will be executed depends on the code that is written within the curly braces following this message handler declaration.
相关问题
基于mfc的简易计算器
以下是一个基于 MFC 的简易计算器的代码示例:
首先,创建一个 MFC 应用程序项目,并在资源视图中添加一个对话框。
在对话框上添加一些控件,如 Edit 控件和 Button 控件,用于显示和输入数字和运算符。
在对话框类的头文件中添加以下代码:
```cpp
class CCalculatorDlg : public CDialogEx
{
// ...
private:
CString m_strInput; // 用于保存用户输入的字符串
double m_dNum1; // 用于保存第一个数字
double m_dNum2; // 用于保存第二个数字
char m_chOperator; // 用于保存运算符
void Calculate(); // 计算结果的函数
public:
CCalculatorDlg(CWnd* pParent = nullptr); // 标准构造函数
// ...
};
```
在对话框类的源文件中添加以下代码:
```cpp
CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_CALCULATOR_DIALOG, pParent)
{
// ...
}
void CCalculatorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_INPUT, m_strInput);
}
BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON_0, &CCalculatorDlg::OnBnClickedButton0)
ON_BN_CLICKED(IDC_BUTTON_1, &CCalculatorDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON_2, &CCalculatorDlg::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON_3, &CCalculatorDlg::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON_4, &CCalculatorDlg::OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON_5, &CCalculatorDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON_6, &CCalculatorDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON_7, &CCalculatorDlg::OnBnClickedButton7)
ON_BN_CLICKED(IDC_BUTTON_8, &CCalculatorDlg::OnBnClickedButton8)
ON_BN_CLICKED(IDC_BUTTON_9, &CCalculatorDlg::OnBnClickedButton9)
ON_BN_CLICKED(IDC_BUTTON_ADD, &CCalculatorDlg::OnBnClickedButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_SUBTRACT, &CCalculatorDlg::OnBnClickedButtonSubtract)
ON_BN_CLICKED(IDC_BUTTON_MULTIPLY, &CCalculatorDlg::OnBnClickedButtonMultiply)
ON_BN_CLICKED(IDC_BUTTON_DIVIDE, &CCalculatorDlg::OnBnClickedButtonDivide)
ON_BN_CLICKED(IDC_BUTTON_EQUAL, &CCalculatorDlg::OnBnClickedButtonEqual)
END_MESSAGE_MAP()
void CCalculatorDlg::OnBnClickedButton0()
{
m_strInput += '0';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton1()
{
m_strInput += '1';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton2()
{
m_strInput += '2';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton3()
{
m_strInput += '3';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton4()
{
m_strInput += '4';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton5()
{
m_strInput += '5';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton6()
{
m_strInput += '6';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton7()
{
m_strInput += '7';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton8()
{
m_strInput += '8';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButton9()
{
m_strInput += '9';
UpdateData(FALSE);
}
void CCalculatorDlg::OnBnClickedButtonAdd()
{
m_dNum1 = _ttof(m_strInput);
m_strInput.Empty();
m_chOperator = '+';
}
void CCalculatorDlg::OnBnClickedButtonSubtract()
{
m_dNum1 = _ttof(m_strInput);
m_strInput.Empty();
m_chOperator = '-';
}
void CCalculatorDlg::OnBnClickedButtonMultiply()
{
m_dNum1 = _ttof(m_strInput);
m_strInput.Empty();
m_chOperator = '*';
}
void CCalculatorDlg::OnBnClickedButtonDivide()
{
m_dNum1 = _ttof(m_strInput);
m_strInput.Empty();
m_chOperator = '/';
}
void CCalculatorDlg::OnBnClickedButtonEqual()
{
m_dNum2 = _ttof(m_strInput);
Calculate();
m_strInput.Empty();
}
void CCalculatorDlg::Calculate()
{
double dResult = 0.0;
switch (m_chOperator)
{
case '+':
dResult = m_dNum1 + m_dNum2;
break;
case '-':
dResult = m_dNum1 - m_dNum2;
break;
case '*':
dResult = m_dNum1 * m_dNum2;
break;
case '/':
dResult = m_dNum1 / m_dNum2;
break;
default:
break;
}
m_strInput.Format(_T("%.2f"), dResult);
UpdateData(FALSE);
}
```
在资源文件中,将按钮的控件 ID 设置为上面代码中的相应 ID,例如 IDC_BUTTON_0、IDC_BUTTON_1 等。
最后,在对话框类的 OnInitDialog() 函数中添加以下代码:
```cpp
BOOL CCalculatorDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置对话框的标题
SetWindowText(_T("Calculator"));
// 设置 Edit 控件的字体
CFont *pFont = new CFont();
pFont->CreateFont(24, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH | FF_SWISS, _T("Arial"));
GetDlgItem(IDC_EDIT_INPUT)->SetFont(pFont);
// 将焦点设置到 Edit 控件上
GetDlgItem(IDC_EDIT_INPUT)->SetFocus();
return FALSE;
}
```
现在,运行程序,就可以在对话框上输入数字和运算符,计算出结果了。
在MFC中,在编辑框输入一个数字m,点击一个按钮,根据(n*(n+1))/2=m,弹出取整的n值,写出代码及步骤,要求将添加消息映射函数等函数的步骤也写出
好的,下面是详细的步骤及代码:
1. 在 MFC 对话框中添加一个编辑框和一个按钮控件,分别命名为 IDC_EDIT 和 IDC_BUTTON。
2. 在对话框类头文件中添加以下代码:
```
afx_msg void OnBnClickedButton();
```
3. 在对话框类的消息映射中添加以下代码:
```
ON_BN_CLICKED(IDC_BUTTON, &CYourDialog::OnBnClickedButton)
```
4. 在对话框类的源文件中添加以下代码:
```
void CYourDialog::OnBnClickedButton()
{
CString str;
GetDlgItemText(IDC_EDIT, str);
int m = _ttoi(str);
int n = (int)(sqrt(2 * m + 0.25) - 0.5);
CString result;
result.Format(_T("%d"), n);
AfxMessageBox(result);
}
```
5. 代码解释:
- 第 4 行代码将 IDC_EDIT 控件中的文本读取到 str 变量中。
- 第 5 行代码将 str 变量转换成整型变量 m。
- 第 7 行代码根据公式计算出 n 的取整值。
- 第 9 行代码将 n 的值转换成字符串格式并弹出对话框显示。
6. 编译并运行程序,输入一个数字 m,点击按钮,即可弹出 n 的取整值。
希望这个代码可以帮助到你!