for(int b=1;b<=12;b++)
{
CString st;
st.Format("%d",b);
m_yue.AddString(st);
}
CString s;
s.Format("%d",m);
int t=m_yue.SelectString(0, s);
m_yue.SetCurSel(t); //设置默认的月份为当前月份
当月份为10-12份时,默认显示没有问题,但是1-9月份时就出现了问题。本月为1月,但默认选择了10月份,调试知道在int t=m_yue.SelectString(0, s)这段出现问题,s的结果是正确的,为1,但运行后t却不是得到0,而是9。
我还有一个下拉框,在默认日期时,写的方法跟这个一样,但却没有出现这样的怪现象。
不知道是什么原因,望大家帮忙看看,谢谢!
7 个解决方案
#1
int t=m_yue.SelectString(0, s);
搂主将字符串类型的数据赋值给了整型。转化一下看看
搂主将字符串类型的数据赋值给了整型。转化一下看看
#2
不好意思。看错了。刚刚我说错了
#3
取消CComboBox的Sort属性
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"
#4
没有用sort的形式,默认的是没有sort的。我用的是combo box控件。
日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2); //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);
日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2); //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);
#5
刚才再次测试了下,只有是1月时才会出错,2-12月不会出错。 同时在日期下拉框里也是这样,如果是1号,则默认的也是10。其它的情况都显示正确。
实在不明白了。
实在不明白了。
#6
估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。
我觉得应该改为s2.Format("%-2d",d);的形式。
#7
估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。
我觉得应该改为s2.Format("%-2d",d);的形式。
#1
int t=m_yue.SelectString(0, s);
搂主将字符串类型的数据赋值给了整型。转化一下看看
搂主将字符串类型的数据赋值给了整型。转化一下看看
#2
不好意思。看错了。刚刚我说错了
#3
取消CComboBox的Sort属性
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"
#4
没有用sort的形式,默认的是没有sort的。我用的是combo box控件。
日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2); //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);
日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2); //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);
#5
刚才再次测试了下,只有是1月时才会出错,2-12月不会出错。 同时在日期下拉框里也是这样,如果是1号,则默认的也是10。其它的情况都显示正确。
实在不明白了。
实在不明白了。
#6
估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。
我觉得应该改为s2.Format("%-2d",d);的形式。
#7
估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。
我觉得应该改为s2.Format("%-2d",d);的形式。