如何解决,显示终止,重试,忽略信息的错误对话框

mhhaifeng 2002-11-07 09:27:43
class CMyListCtrl : public CListCtrl
{


char* CListDlg::InsertColumn(char*pReadpg)  解读数据包 提取字段名信息
{
unsigned long i;
char temcol[100];
int mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH ;
for( i=0; i< num_field; i++ )
{
memcpy(temcol,pReadpg,namelens[i]);
pReadpg=pReadpg+namelens[i];
temcol[namelens[i]]='\0';
MyListCtrl.AddColumn(temcol,i,i,mask,LVCFMT_CENTER);
}
return pReadpg;
}
上面这个函数,跟踪可以得到正确的字段信息 
可是在执行到下面这个函数时 
BOOL CMyListCtrl::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int nMask,int nFmt)
{
LV_COLUMN lvc;
lvc.mask =nMask;
lvc.fmt=nFmt; //指定列的对齐方式
lvc.pszText=(LPTSTR) strItem; //指定列文本缓冲区地址
lvc.cx=GetStringWidth(lvc.pszText)+65 ;//在这里出错,出现对话框, 我点击忽略  //指定列宽
if(nMask&LVCF_SUBITEM)
{
if(nSubItem!=-1)
{
lvc.iSubItem=nSubItem;
} //指定了条目子项索引
else
{
lvc.iSubItem=nItem;
}
}
return InsertColumn(nItem,&lvc); 在这里又出现同样的错误 

}


请问这是什么问题?

为什么执行不过去 ?

一般是什么情况下出现这种问题的?

谢谢!
...全文
140 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mhhaifeng 2002-11-11
不是在CListDlg::OnInitDialog 里调用的

我现在大概知道错在那里了
我窗口创建失败了
谢谢
QQ 9711723
回复
riverboat 2002-11-10
直接从CSDN发消息给我也可以。
回复
riverboat 2002-11-10
你的CListDlg::InsertColumn函数是在什么时候调用的?
如果在CListDlg::OnInitDialog里面调用我试过是没有问题的,也不会报错。

如果需要可以留下你的QQ,我们共同探讨。
回复
mhhaifeng 2002-11-10
我好像绑定了

我为对话框中的列表控件 添加的成员 就是MyListCtrl
还有什么要处理的
才能绑定
回复
riverboat 2002-11-10
另外,除非你的MyListCtrl是与控件ID绑定了,否则你对它的某些涉及到界面的更改是不能进行的。
回复
mhhaifeng 2002-11-10
加了
ASSERT_VALID(this);
还是不行
回复
riverboat 2002-11-10
可以在函数体的最前面加上下面这一句,以确保对象已经初始化:
ASSERT_VALID(this);
回复
HuWenjin 2002-11-09
访问对象超出了列表范围
回复
zhenxizhou 2002-11-09
up
回复
ColderRain 2002-11-08
MyListCtrl可能没有被创建。
一般这是有ASSERT引起的,你可以根据它给出的位子去找原因。
回复
cooljjyy 2002-11-08
可能是MyListCtrl对象没有初始化,所以会出错
回复
nzcui 2002-11-08
换个顺序行不行
lvc.cx=GetStringWidth(strItem)+65 ;
lvc.pszText=(LPTSTR) strItem;
另外GetStringWidth()的参数是LPCTSTR,而lvc.pszText被转成LPTSTR了
回复
wj59 2002-11-08
up
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2002-11-07 09:27
社区公告
暂无公告