C++ MFC学习(第一课)
在第一节课学习了简单的基于对话框程序,通过设置可编辑文本框,静态文本框,一组RadioButton以及Button来实现两个数通过选择计算方式的出结果的一个小程序。下面使用的是Visual C++ 2019版本。
流程
1.新建一个基于对话框的程序
在新建项目中选择MFC应用,设置好名称和位置后点击下一步(名称要不能出现中文),应用程序类型选择基于对话框就可以直接点击完成。
2.进入可编辑界面
在解决方案资源管理器中点击资源文件,选择.rc或.rc2后缀的文件点击。在Dialog中点击IDD_名称_DIALOG就可以进入可编辑的界面。工具箱可以在视图中找到。
这里放置了三个Edit Control,三个Static Text,四个RadioButton以及一个Button。组件属性中可以修改名称样式限输入数字之类的。
3.设置变量
在可编辑文本框右键点击添加变量,类别改为值,变量类型改为double类,设置好名称点击完成。这里要给三个可编辑文本框设置变量。
4.设置事件处理程序
右键Button,点击添加事件处理程序,类列表要选择Dlg的。
在头文件DLAG名称Change.h中能看到自己刚刚设置的变量。
void CChAngedlgDlg::OnBnClickedButton1()
{
UpdateData(1);//将文本框的数据同步到变量
int op = GetCheckedRadioButton(IDC_RADIO1, IDC_RADIO4);
switch (op)
{
case IDC_RADIO1:number3 = number1 + number2; break;
case IDC_RADIO2:number3 = number1 - number2; break;
case IDC_RADIO3:number3 = number1 * number2; break;
case IDC_RADIO4:if (number2 == 0)
number3 = 0;
else number3 = number1 / number2; break;
default:break;
}
UpdateData(0);//将变量同步回文本框
// TODO: 在此添加控件通知处理程序代码
}
这样等号按钮的事件触发就设置好了。
函数 | 功能 |
---|---|
UpdateData(bool a) | 后面参数默认为1,1的时候将文本框的值同步到变量中,0的时候将变量的值同步回文本框中。 |
GetCheckedRadioButton(int a,int b) | 找出Radio Buttonid从a到b中被选中的值并返回。 |
接下来就生成就可以了。
另外,学习了点击按钮后将按钮文本改变的操作。
我们新建一个Button,然后添加变量,这次变量类型是控件类型。
点击完成后再为该按钮添加事件处理程序,类列表也是Dlg的。
void CChAngedlgDlg::OnBnClickedButton3()
{
button2.SetWindowTextW(L"贴了一下");
}
函数 | 功能 |
---|---|
对象名.SetWindowTextW() | 将窗口的标题设置成后面的字符形式(如果控件有标题) |
函数后面的W表示用双字节字符,字符串前面要加个L。对应的还有函数SetWindowTextA(),表示用单字节字符。
详细参考:https://www.cnblogs.com/zhangbing12304/p/11118222.html
点击后就变成参数设置的字符形式了。