在MFC中遇到的问题

我做的程序目的是记录每个人的时间表,并进行判断,如果此用户曾经记录过他的时间则该用户在登陆的时候会有以前他所选择的时间,这里选择时间的控件我用的是复选框,并做了一个按钮控... 我做的程序目的是记录每个人的时间表,并进行判断,如果此用户曾经记录过他的时间则该用户在登陆的时候会有以前他所选择的时间,这里选择时间的控件我用的是复选框,并做了一个按钮控件,当他点击“今日”这个按钮时,在IDC_EDIT1中显示他的用户名在IDC_EDIT2中显示今天的时间,并显示13个复选框,分别为:07:00-08:00……19:00-20:00。
“今日”按钮控件代码如下:
CTime tm=CTime::GetCurrentTime();
CString str=tm.Format("%Y-%m-%d");
GetDlgItem( IDC_EDIT2)->SetWindowText( str);
CString str1,str2,str3;
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
char buf[100] = {0};for(int k = 7; k < 20; k++)
{
sprintf(buf, "time: %s %02d:00-%02d:00\r\n",str2,k,k+1);
str3.Format("%s %s",str1,buf);
}
ifstream infile("E:\\terminal\\test.txt");
char szTemp[10000]; //定义一个缓冲字符数组
CString dd[100];
int i=0;
CString nindex;
while(infile.getline(szTemp,10000))
{
dd[i]=szTemp;
i++;
CString text[100];
for(int j=0;j<i;j++)
{
text[j]=dd[j].Left(32);
if(str4[j]==text[j])
{
((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(1);
}
}
}

为什么复选框1不会打钩(这里我只做了第一个时间档会打钩)
请教各位高手
展开
 我来答
weiyinwu
2012-02-27 · TA获得超过1540个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:1141万
展开全部
if这里的str4[j]没有看到定义和有值?所以if条件一直没有执行?你可以在if中放一个AfxMessageBox()进行调试。
这使用使用的是GetDlgItem方式来给CHECK赋值,不使用UpdateData(FALSE)也能更新的。
更多追问追答
追问
这里str4打错了应该是str3
我另外想实现就是如果两个数据比较相同则在复选框第j个打钩如何实现??
追答
你这里有很多个复选框吗?看起来应该只有一个吧?
如果多个复选框的话,首先确保它的ID的连续性,然后第几个在后面加j.这里的j要从0开始算起。
((CButton *)GetDlgItem(IDC_CHECK1+j))->SetCheck(1);
另外,你程序中下面这个循环中str3是循环的k=19时的值,每次都构造str3的值,后面用到的就是k=19时的值
for(int k = 7; k < 20; k++)
{
sprintf(buf, "time: %s %02d:00-%02d:00\r\n",str2,k,k+1);
str3.Format("%s %s",str1,buf);
}
你说这个str4应该是str3,但你的str3明显定义的又不是数组,这里你又把一个CString类,拆成字串中的每一个来比较了。if(str3[j]==text[j])
huqiuser123
2012-02-26 · TA获得超过119个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:176万
展开全部
试着在后面加一句UpdateData(FALSE);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式