关于两个combox的用法

a568346 2012-08-31 09:50:52
第一个combox存年份,第二个存月份,利用不同的时间发送不同的内容。现已在combo box属性data里填写数据,type为droplist。combox程序如下,为何编译没问题,执行错误,显示下标越界或内存泄露。本人新手,刚学习vc,连续调了两天,查找实例也没解决问题。希望大侠不吝赐教。void CSCommTestDlg::OnSelchangeComboboxex2()
{
// TODO: Add your control notification handler code here
if((GetFocus()->GetParent())==GetDlgItem(IDC_COMBOBOXEX2))//判断焦点是否在编辑框IDC_COMBOBOXEX2内
{
CString strTemp;
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//消除现有所有内容

for(int i=1;i<=7;i++)

{

strTemp.Format("%d",i);

((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->AddString(strTemp);

}
int iCount=((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->GetCount();//取得目前已经有的行数


if(iCount<1)//防止重复多次添加

{

for(int i=1;i<=7;i++)

{

strTemp.Format("%d",i);

((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->AddString(strTemp);
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//设置第n行内容为显示的内容
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->GetWindowText(strTemp);//取当前内容

}
}else;
}else;

}
...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
都被你清除了,还能:
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->GetWindowText(strTemp);//取当前内容
吗?
a568346 2012-08-31
  • 打赏
  • 举报
回复
就算清除了数据,可为何执行不了呢
傻X 2012-08-31
  • 打赏
  • 举报
回复
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//设置第n行内容为显示的内容


你函数理解上面有巨大错误。这个是清楚所有Combobox的内容
houffee 2012-08-31
  • 打赏
  • 举报
回复
还是使用CComboBox::InsertString来做吧
CComboBox::ResetContent这个函数是清掉CComboBox内的所有行!!
a568346 2012-08-31
  • 打赏
  • 举报
回复
注释的意思是现在还没确定是第几行,我设置了8行,难道我现在自己选?不是程序自己根据我的动作选择吗?
自己真的很菜,不知道把问题说明白没有。
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//设置第n行内容为显示的内容
???
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
你用的ComboEX 还是 Combo
ComboEx没有AddString。
要先得到 ComboCtrl
GetComboCtrl
a568346 2012-08-31
  • 打赏
  • 举报
回复
应该怎么改呢?谢谢了,难道需要自己动手一个一个InsertString?这个很容易吗?为何听你们说了那么多,还是没把程序改对。希望能解答详细点,非常感谢。
schlafenhamster 2012-08-31
  • 打赏
  • 举报
回复
((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->GetWindowText(strTemp);//取当前内容
这是取combo中edit的内容!(没select, edit中无内容 )
不是list中的item内容!
a568346 2012-08-31
  • 打赏
  • 举报
回复
我把((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//设置第n行内容为显示的内容

注掉了,但为什么还执行不了,显示下标越界或内存泄露。希望能说的详细点。
a568346 2012-08-31
  • 打赏
  • 举报
回复
我把((CComboBox*)GetDlgItem(IDC_COMBOBOXEX2))->ResetContent();//设置第n行内容为显示的内容

注掉了,但还是无法执行。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧