CListCtrl使用过程中出现断言出错求助

savioryx28 2010-07-04 10:22:08
我是新手 刚开始自学 很多地方都是懵懵懂懂的
今天在自己做个信息管理的东西 在写ClistCtrl的时候出现断言错误
但是进去根本看不懂 图如下

顺便发下代码
BOOL C信息管理Dlg::OnInitDialog()
{
CDialog::OnInitDialog();

C信息管理App *pApp = (C信息管理App *)AfxGetApp();


// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码
m_List.SetBkColor(RGB(0,128,128));
m_List.SetTextBkColor(RGB(0,128,128));
m_List.SetTextColor(RGB(255,255,0));

m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);

TCHAR szBuf[20];
LV_COLUMN lvc;

CRect rect;
m_List.GetClientRect(&rect);
int nColInterval = rect.Width()/7;

for(int i = 0;i<6;i++)
{
switch(i)
{
case 0:
wsprintf(szBuf,_T("编号"));
lvc.cx = nColInterval; //设置宽度
break;
case 1:
wsprintf(szBuf,_T("姓名"));
lvc.cx = nColInterval;
break;
case 2:
wsprintf(szBuf,_T("电话"));
lvc.cx = nColInterval*2;
break;
case 3:
wsprintf(szBuf,_T("地址"));
lvc.cx = nColInterval;
break;
case 4:
wsprintf(szBuf,_T("社会关系"));
lvc.cx = nColInterval;
break;
case 5:
wsprintf(szBuf,_T("备注"));
lvc.cx = nColInterval;
break;
}
lvc.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvc.fmt = LVCFMT_LEFT;
lvc.pszText = szBuf; //设置文字
lvc.iSubItem = i; //设置索引值
m_List.InsertColumn(i,&lvc); //将该项插入
}
WORD nCount;
POSITION pos;
CString my_Date;

nCount = pApp->i_InfoList.GetCount();
pos = pApp->i_InfoList.GetHeadPosition(); //找到头指针的位置
for(int i=0;i<nCount && pos!=NULL;i++)
{
Info* pInfo = pApp->i_InfoList.GetNext(pos);
m_List.InsertItem(i,LPSTR_TEXTCALLBACK);
CString my_Num;
my_Num.Format(_T("%d"),pInfo->i_Num);
m_List.SetItemText(i,0,my_Num);
m_List.SetItemText(i,1,pInfo->i_Name);
CString my_Pho;
my_Pho.Format(_T("%d"),pInfo->i_Pho);
m_List.SetItemText(i,2,my_Pho);
m_List.SetItemText(i,3,pInfo->i_Addr);
m_List.SetItemText(i,4,pInfo->i_SRel);
m_List.SetItemText(i,5,pInfo->i_Tip);
}

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}

请高手指点下啊。。。为什么会出错 还有怎么改正?谢谢了
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wucuizhu 2010-07-04
  • 打赏
  • 举报
回复
好像是连接数据时出现了错误
Yanger_xy 2010-07-04
  • 打赏
  • 举报
回复
这个对话框提示错误的位置在afxcmn...第134行,显然这个文件不是你写的,是"系统级"的文件.
很有可能是你的代码的逻辑问题,可能是你的ListCtrl还未显示出来你就访问了这个控件.楼主自己
调试一下,跟踪到底是运行到哪行代码出了问题.
雪影 2010-07-04
  • 打赏
  • 举报
回复
直接在断言的代码行设置断点,单步调试进入,查看出错的变量参数
zyq5945 2010-07-04
  • 打赏
  • 举报
回复
F9下断点,F5调试运行,F10单步跟踪看下那步出错了.
我帮你转到界面版把.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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