CString from; //用户名
CString ip; //用户ip
在CConferenceView接收网络传来的数据,并触发事件:
CMsg msg;
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6);
2、然后在CMainFrame中响应事件,并把用户显示在m_olist的列表中
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
{
CMsg* pStr = (CMsg*)wParam;
this->dlgBar.m_olist.AddItem(0, pStr->from.GetBuffer(0), pStr->ip.GetBuffer(0));
pStr->from.ReleaseBuffer();
pStr->ip.ReleaseBuffer();
}
但是接收不了任何消息,怎么办?谢谢!!
18 个解决方案
#1
原来的源码只是传递from的数据,没有任何问题。代码如下:
在CConferenceView接收网络传来的数据,并触发事件:
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg.from), 6);
2、然后在CMainFrame中响应事件,并把用户显示在m_olist的列表中
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
{
CString* pStr = (CString*)wParam;
this->dlgBar.m_olist.AddItem((short)lParam, pStr->GetBuffer(0), NULL);
pStr->ReleaseBuffer();
}
在CConferenceView接收网络传来的数据,并触发事件:
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg.from), 6);
2、然后在CMainFrame中响应事件,并把用户显示在m_olist的列表中
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
{
CString* pStr = (CString*)wParam;
this->dlgBar.m_olist.AddItem((short)lParam, pStr->GetBuffer(0), NULL);
pStr->ReleaseBuffer();
}
#2
可以改成postmessage试试
#3
还是不行啊?
#4
消息映射在哪里?
#5
函数定义都错误了,怎么可以定义为void类型的函数呢,改一下函数定义看看能否成功
#6
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam) 消息响应函数是这样定义的吗?
我记得原型是LRESULT OnMsgProc(HWND,UINT, WPARAM wParam, LPARAM lParam)吧 如果是ATL的就是
LRESULT OnMsgProc(UINT, WPARAM wParam, LPARAM lParam, BOOL&);
我记得原型是LRESULT OnMsgProc(HWND,UINT, WPARAM wParam, LPARAM lParam)吧 如果是ATL的就是
LRESULT OnMsgProc(UINT, WPARAM wParam, LPARAM lParam, BOOL&);
#7
消息映射怎么写的?WM_ADDLIST + 1这个消息在哪响应的?
#8
WM_ADDLIST + 1是多少? 是否与函数映射到消息一致?
#9
是收不到消息还是收不到数据
CMsg msg;
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6);
这里并没有给msg赋值
#10
WM_ADDLIST + 1 消息是不是没有处理?
#11
消息函数返回应为LRESULT,还有消息映射写对了吗????!!!!!
#12
先学习一下怎么发送自定义消息吧
#13
同意12楼的说法,让他自己先学习一下如何自定义消息吧.
#14
是收不到数据,还有msg已经赋值了呀。它是从存档中取出信息msg.Serialize (*m_pArchiveIn);我是从1楼的代码中修改而成的,而1楼接收数据是没问题的。
#15
消息映射在CMainFrame中,定义如下:
ON_MESSAGE(WM_ADDLIST+ 1, OnAddMember)
#16
是进不到void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam) 函数吗?
如果是这样的话 在 AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6)句之前加 CWnd *p=AfxGetMainWnd();看看p的值对不对
如果是这样的话 在 AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6)句之前加 CWnd *p=AfxGetMainWnd();看看p的值对不对
#17
谢谢各位的指点!!现在可以接收数据了。但是奇怪,怎么只能接收from的数据,而ip数据却没有显示呢????
#18
解决了。辛苦各位了!!!
#1
原来的源码只是传递from的数据,没有任何问题。代码如下:
在CConferenceView接收网络传来的数据,并触发事件:
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg.from), 6);
2、然后在CMainFrame中响应事件,并把用户显示在m_olist的列表中
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
{
CString* pStr = (CString*)wParam;
this->dlgBar.m_olist.AddItem((short)lParam, pStr->GetBuffer(0), NULL);
pStr->ReleaseBuffer();
}
在CConferenceView接收网络传来的数据,并触发事件:
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg.from), 6);
2、然后在CMainFrame中响应事件,并把用户显示在m_olist的列表中
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
{
CString* pStr = (CString*)wParam;
this->dlgBar.m_olist.AddItem((short)lParam, pStr->GetBuffer(0), NULL);
pStr->ReleaseBuffer();
}
#2
可以改成postmessage试试
#3
还是不行啊?
#4
消息映射在哪里?
#5
函数定义都错误了,怎么可以定义为void类型的函数呢,改一下函数定义看看能否成功
#6
void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam) 消息响应函数是这样定义的吗?
我记得原型是LRESULT OnMsgProc(HWND,UINT, WPARAM wParam, LPARAM lParam)吧 如果是ATL的就是
LRESULT OnMsgProc(UINT, WPARAM wParam, LPARAM lParam, BOOL&);
我记得原型是LRESULT OnMsgProc(HWND,UINT, WPARAM wParam, LPARAM lParam)吧 如果是ATL的就是
LRESULT OnMsgProc(UINT, WPARAM wParam, LPARAM lParam, BOOL&);
#7
消息映射怎么写的?WM_ADDLIST + 1这个消息在哪响应的?
#8
WM_ADDLIST + 1是多少? 是否与函数映射到消息一致?
#9
是收不到消息还是收不到数据
CMsg msg;
AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6);
这里并没有给msg赋值
#10
WM_ADDLIST + 1 消息是不是没有处理?
#11
消息函数返回应为LRESULT,还有消息映射写对了吗????!!!!!
#12
先学习一下怎么发送自定义消息吧
#13
同意12楼的说法,让他自己先学习一下如何自定义消息吧.
#14
是收不到数据,还有msg已经赋值了呀。它是从存档中取出信息msg.Serialize (*m_pArchiveIn);我是从1楼的代码中修改而成的,而1楼接收数据是没问题的。
#15
消息映射在CMainFrame中,定义如下:
ON_MESSAGE(WM_ADDLIST+ 1, OnAddMember)
#16
是进不到void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam) 函数吗?
如果是这样的话 在 AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6)句之前加 CWnd *p=AfxGetMainWnd();看看p的值对不对
如果是这样的话 在 AfxGetMainWnd()->SendMessage(WM_ADDLIST + 1, (LPARAM)&(msg), 6)句之前加 CWnd *p=AfxGetMainWnd();看看p的值对不对
#17
谢谢各位的指点!!现在可以接收数据了。但是奇怪,怎么只能接收from的数据,而ip数据却没有显示呢????
#18
解决了。辛苦各位了!!!