永发信息网

MFC for 循环里面if 和 else问题

答案:2  悬赏:30  手机版
解决时间 2021-04-07 03:23
MFC for 循环里面if 和 else问题
最佳答案
if (strYMDHM==strItemYMDHM)//CString直接比较就好了
{
m_lstDtf.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED|LVIS_FOCUSED);
m_lstDtf.SetFocus();
m_lstDtf.EnsureVisible(i,FALSE);
}
else
{
//  CLanguageX *plan = &theApp.m_langx;
//  CString strText;
//  plan->GetString(666,strText);
//  MessageBox(strText.GetBuffer(),NULL,MB_OK);
AfxMessageBox(strYMDHM+_T(" ")+strItemYMDHM); //看看哪里不同
return;
}追问谢谢你的回答,刚刚试了你的方法,strItemYMDHM一直都是显示第一行的记录追答这样看不出为什么你只能获取第一条。
不过你的逻辑是有问题的,你这个for循环是做的list遍历,那么你不能每个不同的就弹消息吧。
合理的逻辑,应该是这样的:(需要完善)
for(i = 0;i < m_lstDtf.GetItemCount();i++)
{
//获取ListCtrl时间
strItem = m_lstDtf.GetItemText(i,0);
strItemYMDHM = strItem.Left(16);

if (strYMDHM==strItemYMDHM)
{
m_lstDtf.SetItemState(i,LVIS_SELECTED,LVIS_SELECTED|LVIS_FOCUSED);
m_lstDtf.SetFocus();
m_lstDtf.EnsureVisible(i,FALSE);
break;//跳出循环
}
}
if(i==m_lstDtf.GetItemCount())//遍历完成后没有匹配的,这里需要完善
{
CLanguageX *plan = &theApp.m_langx;
CString strText;
plan->GetString(666,strText);
MessageBox(strText.GetBuffer(),NULL,MB_OK);
return;
}
全部回答
你可以就strcmp()函数写一个messagebox返回值,看看返回的是什么值?然后就是返回你要对比的strYMDHM和strItemYMDHM两个值,对比一下看看哪里出了错。你的strYMDHM中间有个空格,但是在你的字符串左16位里面不知道有没有,你把strYMDHM里面的空格去掉试试。追问是一样的,因为不加else没问题的,加了后就只弹出else里的MessageBox
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从广州去美国宾夕法尼亚州立大学怎样走
李小璐主演的现代都市电视剧有哪些,
中脉和ds内衣哪个好
单位国庆祝福短信,求中秋节,国庆节经典祝福或
下列各句中,没有语病的一句是A.《中华人民共
48÷6=8,表示48里面有( )个( );
微信支付转账交易失败退款多久到账
700分钟的话费等于多少钱
北京北大青鸟学校怎么样,有谁知道北京北大青
75角钢国标厚度多少
云南大学生科院研究生好考么
Tom has a little money in the bank,support
爸爸的大哥怎么称呼,该喊父亲的表兄弟和姑姑
社保最终领取地点
我的女儿今年十六岁了,经常打骂父母,奶奶,妹
推荐资讯
单选题一位同学查阅《申报》时看到以下报道:
我有电信的光猫,现在家里换铁通的光纤,能不
游览西宁多功能电视观光塔作文
新公司前几个月零报税,那么这几个月能不能正
惠威TE-2600功放+韵乐X5效果器+BMB880音响。
为什么更改盘符重启电脑后,又自动变回去?
好美佳连锁便利店地址在哪,我要去那里办事
12小时制,7个人,10天班怎么排?
梦幻西游鬼魂死亡幽灵与高神仙子合
单选题照明电路中安装闸刀开关的作用是A.便于
龙头寨村这个地址在什么地方,我要处理点事
沈阳四冲里面的牌型是如何规定大小的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?