下面的问题在VC下面似乎没有,但是在EVC下面就出现了不知道哪位遇见过,能指教一二,不胜感激
遇到一些问题。希望各位不吝赐教。先谢过了。
现在有两个界面,称为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了呀。
想不明白了。求人执教。
谢谢了。
遇到一些问题。希望各位不吝赐教。先谢过了。
现在有两个界面,称为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了呀。
想不明白了。求人执教。
谢谢了。
解决方案 »
- 如何获取硬件信息
- 改变编辑框中的数字,如果超过范围, 显示tooltip或类似,怎么做?
- vc支持MYSQL数据库吗
- 如何使用GetAsyncKeyState()得到按键是否松开。
- 为什么DoModal产生的窗口不显示,要重新切换别的窗体后才出来?
- 菜鸟急问dll资源问题???
- kxyes多谢你的代码,进来接分
- 如何解决对话框中一个静态控件的闪烁问题,用来显示当前时间。
- 关于VC画图闪屏的问题
- 谁有 <泛型程式设计与 STL>这本书
- 为什么我在使用LoadLibrary时出现ERROR CODE 126:The specified module could not be found.
- VC找工作 受打击了.
//这样的声明 是没有 调用 DoDataExchange(CDataExchange* pDX) 所以没有初始化
dlg.Indicate();m_List1.InsertItem(0,NULL);//在InsertItem 之前先要InsertColumn
InsertColumn在另外一个初始化的函数中加入了。这个都没有问题的。
因为相同代码我在A界面功能都是能够实现的。但是到了B界面就不对了。
单步走也是
接收到数据,走到dlg.Indicate();
进入Indicate后走到InsertItem就出错了。
用的SetItemText(num,num,str)str 里为数据内容,单步看见str里面的数据内容已经对了但是加不到list里面去。再劳各位费心帮忙看看。
劳烦各位再帮忙看看吧。
邮箱 :[email protected]
msdn自以为相关的我都看了。现在就是不太了解应该怎么做了。能给点详细的提示么。