怎么用MFC,将复选框选中的文字在编辑框中显示出来,例如下面的图片,就是说将选中的课程在编辑框中显示出 10
3个回答
展开全部
首先classwizard 为复选框控件添加bool类型变量,
为button按钮添加消息响应函数,
UpdateData(TRUE);//得到控件选择
CString infomation;//定义一个字符串存储输出信息
infomation.Format("%s %s %s %s %s %s %s %s ",m_sNam, m_nSex == 0?"男":"女",
m_nCla ==0?"一班":1?"二班":"三班", m_nGre == 0?"及格":"不及格",
m_bBas?"篮球":"", m_bRea?"读书":"", m_bMus?"音乐":"", m_bNet?"上网":"");
GetDlgItem(IDC_EDIT_INF)->SetWindowText(infomation);//该函数将infomation输出到id为IDC_EDIT_INF的编辑框
为button按钮添加消息响应函数,
UpdateData(TRUE);//得到控件选择
CString infomation;//定义一个字符串存储输出信息
infomation.Format("%s %s %s %s %s %s %s %s ",m_sNam, m_nSex == 0?"男":"女",
m_nCla ==0?"一班":1?"二班":"三班", m_nGre == 0?"及格":"不及格",
m_bBas?"篮球":"", m_bRea?"读书":"", m_bMus?"音乐":"", m_bNet?"上网":"");
GetDlgItem(IDC_EDIT_INF)->SetWindowText(infomation);//该函数将infomation输出到id为IDC_EDIT_INF的编辑框
展开全部
假定资源名称
左侧为IDC_RADIO[1-3],显示课程的为IDC_STATIC_COURSE[1-3]
编辑框为IDC_EDIT
在点击BUTTON1发生的事件里
{
CString Text1,Text2,Text3,szEdit;
int check = ((CButton*) GetDlgItem(IDC_RADIO1))->GetCheck();//Radio控件状态 ;
if ( BST_CHECKED == check)
Text1 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE1)->GetWindowTextW();//获得Static的字符 ;
int check = ((CButton*) GetDlgItem(IDC_RADIO2))->GetCheck();
if ( BST_CHECKED == check)
Text2 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE2)->GetWindowTextW();
int check = ((CButton*) GetDlgItem(IDC_RADIO3))->GetCheck();
if ( BST_CHECKED == check)
Text3 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE3)->GetWindowTextW();
szEdit = Text1 + _T("\r\n") + Text2 + _T("\r\n") +Text3;
((CEdit*)GetDlgItem(IDC_EDIT))->SetWindowTextW(szEdit);//显示最终内容 ;
}
左侧为IDC_RADIO[1-3],显示课程的为IDC_STATIC_COURSE[1-3]
编辑框为IDC_EDIT
在点击BUTTON1发生的事件里
{
CString Text1,Text2,Text3,szEdit;
int check = ((CButton*) GetDlgItem(IDC_RADIO1))->GetCheck();//Radio控件状态 ;
if ( BST_CHECKED == check)
Text1 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE1)->GetWindowTextW();//获得Static的字符 ;
int check = ((CButton*) GetDlgItem(IDC_RADIO2))->GetCheck();
if ( BST_CHECKED == check)
Text2 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE2)->GetWindowTextW();
int check = ((CButton*) GetDlgItem(IDC_RADIO3))->GetCheck();
if ( BST_CHECKED == check)
Text3 = ((CEdit*)GetDlgItem(IDC_STATIC_COURSE3)->GetWindowTextW();
szEdit = Text1 + _T("\r\n") + Text2 + _T("\r\n") +Text3;
((CEdit*)GetDlgItem(IDC_EDIT))->SetWindowTextW(szEdit);//显示最终内容 ;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,要为这几个复选框定义BOOL型关联变量,然后通过TRUE和FALSE去判断选中情况,定义几个CString去保存相关的文字描述,为编辑框定义一个CSting的关联变量,然后用这个变量把选中的文字描述连接并输出,可以把这几个一次定义为BOOL m_bLine,BOOL m_bEnglish,BOOL m_bMath,BOOL m_bAll,m_strRecord;
追问
可以把代码写一下吗
追答
嗯,稍微做了些修改,复选框的属性设为CButton,ID没设置,是系统默认的,编辑框是m_strEdit先在dlg头文件里加了m_nMouseStep,用于计算点击复选的次数,在OnInitDialog函数中设了初值m_nMuseStep=0,再为全选复选框添加了单击响应函数
void CSubjectDlg::OnCheck4()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
switch(m_nMouseStep)
{
case 0:
m_Check1.SetCheck(1);
m_Check2.SetCheck(1);
m_Check3.SetCheck(1);
m_nMouseStep++;
break;
case 1:
m_Check1.SetCheck(0);
m_Check2.SetCheck(0);
m_Check3.SetCheck(0);
m_nMouseStep=0;
break;
}
UpdateData(FALSE);
}
目的是单击一下全选框,全选,再单击一下,全不选,再为button设了一个单击响应函数
void CSubjectDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString str1="线性代数",str2="大学英语",str3="高等数学";
if(m_Check4.GetCheck()==1)
m_strEdit=str1+"、"+str2+"、"+str3;
else
{
if(m_Check1.GetCheck()==1)
{
if(m_strEdit!="") m_strEdit+="、";
m_strEdit+=str1;
}
if(m_Check2.GetCheck()==1)
{
if(m_strEdit!="") m_strEdit+="、";
m_strEdit+=str2;
}
if(m_Check3.GetCheck()==1)
{
if(m_strEdit!="") m_strEdit+="、";
m_strEdit+=str3;
}
}
UpdateData(FALSE);
}
用、分开各个科目
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询