3030|8

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个关于ListCtrl的问题 [复制链接]

遇到一些问题。希望各位不吝赐教。先谢过了。
现在有两个界面,称为A和B吧。
通过网口传输数据。在A界面接收数据,然后在B界面通过一个ListCtrl显示
ListCtrl控件选择为report
每接收一个数据就在list中显示一个。
现在的问题是。如果在A界面来做这个事情(既在A也添加一个ListCtrl ),在网口收到数据显示是正常的。可是如果想在B界面显示就所有错误了。
B界面的对话框类为CBDlg,里面有一个function叫做Indicate好了。
void CBDlg::Indicate()
{   
    m_List1.InsertItem(0,NULL);
    AfxMessageBox(_T("a"));
}
在A界面的接收到数据后调用
CBDlg dlg;
dlg.Indicate();
别的功能先不做,就想先添加一行。没有内容。
编译什么的都没错。可是一运行程序。在收到数据后运行到InsertItem时就会断言错误。

_AFXCMN_INLINE int CListCtrl::InsertItem(int nItem, LPCTSTR lpszItem)
        { ASSERT(::IsWindow(m_hWnd)); return InsertItem(LVIF_TEXT, nItem, lpszItem, 0, 0, 0, 0); }

不知道什么原因。是认为我没初始化m_List1么?可是我有在B界面DoDataExchange里加以下代码。
void CBDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CBDlg)
        DDX_Control(pDX, IDC_LIST1, m_List1);
        //}}AFX_DATA_MAP
}
并且网口发数据是在B界面来控制的,既需要先启动B界面,按一次BUTTON对方发过来一个数据。那也应该初始化了m_List1了呀。
想不明白了。求人执教。
谢谢了。

最新回复

我现在的是 dlg.Create(IDD_XXX,NULL); insert什么的都不报错了,但是还是添加内容啥的还是不行,望指点一二  详情 回复 发表于 2007-9-4 09:58
点赞 关注

回复
举报

55

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在dlg.Indicate();之前加上dlg.DoModal();试试。

CBDlg dlg;只是定义一个CBDlg类变量而已,没有初始化。
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
DoModal()
只是打开了那个界面呀。这个方法我试过的。还是不对的。
谢谢你咯
顶一下,希望大家帮忙呀。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
在A界面的接收到数据后调用
CBDlg dlg;
dlg.Indicate();
-------------------------
你这样做,是每次收到一个消息就创建了一个CBDlg的实例啊!

在主窗口中保存一个CBDlg *pDlg;
收到消息后:pDlg->Indicate();
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢过楼上的。
收到消息调用pDlg->Indicate();
运行到InsertItem那行还是会出错,错误跟上述相同。
再帮忙想想辙呀,谢谢啦。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
顶一下。现在InsertItem不出错了。但是无法往里面添加数据呀。
用的SetItemText(num,num,str)str  里为数据内容,单步看见str里面的数据内容已经对了但是加不到list里面去。再劳各位费心帮忙看看。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
查了InsertItem反回值为0,SetItemText返回值为1。可是就是不显示。不知道怎么回事。
劳烦各位再帮忙看看吧。
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

8
 
CBDlg dlg;
dlg.Indicate();//对话框都没有创建, 所以里面的控件也没有创建起来, 这样做肯定没有反应的

先Create dlg
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
我现在的是
dlg.Create(IDD_XXX,NULL);
insert什么的都不报错了,但是还是添加内容啥的还是不行,望指点一二
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表