轻量级前端框架助力开发者提升项目效率与性能
674
2022-11-17
用MFC写调查问卷(课本例题,基于visual C++ 2017的使用)
一.创建并设计对话框
1.创建一个对话框
2.打开资源视图中的”IDD_MFCAPPLICATION6_DIALOG
“
删除对话框中央的“TODO" 3.添加组框 Group Box
在组框里添加组款控键
添加静态文本控键 右键属性 将Caption 改为 你的名字
(属性中 Align Text 可以选择文字文本在顶部的水平位置)默认的Default 表示左对齐。
在组框内还要添加控键: 如例子里,3个年龄范围的单选控键 Radio Button
默认的ID依次是IDC_RADIO1、IDC_RADIO2、IDC_RADIO3,改为
IDC_AGE_L18、IDC_AGE_18T27、IDC_AGE_M27(这个由后文属性猜测涵义)
属性标题改为<18、18-27、>27.
接下来和前面类似,static text 的Caption改为 你使用的接入方式 ,
在下添加4个单选控键,FTTL/ADSL LAN 拨号56k 其他
属性依次改为 IDC_CM_FTTL、IDC_CM_LAN、IDC_CM_56k IDC_CM_OTHER
4.再添加一个组框控键 标题:你上网主要是为了:
添加4个复选框(重点,意思是可以多选)
标题:收发邮件 浏览文件 聊天游戏 其他
ID
属性改为 IDC_DO_POP IDC_DO_READ IDC_DO_GAME IDC_DO_OTHER
出来了,但没用,最重要的是代码没上
二.代码区
打开 DLG.cpp
找到这个初始化函数,输入蓝色底的代码。
打开 项目 类向导 输入IDOk 添加IDOK BN_CLIKED消息映射 ,并添加代码:
找到这个函数,添加代码如下:
void CMFCApplication4Dlg::OnBnClickedOk()
{
CString str, strCtr1;
str = “你的年龄”;
UINT nID = GetCheckedRadioButton(IDC_AGE_L18, IDC_AGE_M27);
//CString 是操作字符串的MFC类
GetDlgItemText(nID, strCtr1);//获得指定控键的标题文本 第一个是指定控键的标识,第二个是返回窗口文本str = str + strCtr1;//strCtr1为字符串形式的第一个问题答案str = str + (CString)"\n你使用的接入方式:\n ";nID = GetCheckedRadioButton(IDC_CM_FTTL, IDC_CM_OTHER);GetDlgItemText(nID, strCtr1);//获得指定控键的标题文本 str = str + strCtr1;str = str + (CString)" \n你上网主要是:\n";UINT nCheckIDs[4] = { IDC_DO_POP,IDC_DO_READ,IDC_DO_GAME,IDC_DO_OTHER };CButton *pBtn;for (int i = 0; i < 4; i++){ pBtn = (CButton*)GetDlgItem(nCheckIDs[i]); if (pBtn->GetCheck()) { pBtn->GetWindowText(strCtr1);//GetWindowText函数作用和GetDlgItemText函数作用相同,也是获取窗口的文本内容,注意用法不同,前者用的比较广 str = str + strCtr1; str = str +(CString) " "; }}//最重要的是后面这两句,原来我忘记打了,导致没出结果,找了一晚上才找到//MessageBox(str);//选择这个方式的话效果如第一个MessageBox( str , _T("调查问卷"), MB_ICONQUESTION|MB_ABORTRETRYIGNORE);//选择这句效果如第二个
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}
很多人说mfc OUT了,而visual C++ 2017年的较新版本还升级了,导致我们在学习时和以前的课本对应困难。博主老师教得也是晕的很。迫于交作业,只能自学和问人了。写得不好,请别吐。最近还要完成的报告内容是
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~