在VC中想从void CListenSocket::OnReceive(int nErrorCode)函数中响应一个消息PostMessage(AfxGetApp()->m_pMainWnd->m_hWnd,RE_RECEIVED,(WPARAM)lpBuf1,0),将收到的文本通过lpBuf1传给视图中的LRESULT CclientView::OnReceive(WPARAM wParam,LPARAM lParam)消息函数,也没有误,就是不能跳到该消息函数中执行,是不是获得的指针有问题?请大家指点.
解决方案 »
- 我使用SkinMagic出现问题,谁能帮助我?
- 请教一个PeekMessage的问题
- fatal error C1083: Cannot open precompiled header 第一个windows程序
- 有这个类型吗
- 关于创建临时文件的问题!!!!!!!!
- 求教断点的问题
- VC中有类似VB的Debug.Print调试功能,即将某字符串显示在Debug窗口?
- 请问那里有好的控键下载?
- 急,VC里怎样用MICROSOFT MULTIMEDIA CONTROL V6。0???送分
- 问:pdf文件不能打印,该如何解决?<jbuilder的开发指南>
- 如何消除对话框一闪即逝的现象??
- 利用vc读取word中不规则表格问题(高分求助)
这一句你是要向MainFrame发送RE_RECEIVED消息,在CMainFrame中你是否定义了该消息?而看这一句LRESULT CclientView::OnReceive(WPARAM wParam,LPARAM lParam)
仿佛RE_RECEIVED的执行是在CclientView中.有两种方法改:
1、让RE_RECEIVED的执行在CMainFrame中:将OnReceive(WPARAM wParam,LPARAM lParam)这个函数放在CMainFrame中,同时,检查是否在CMainFrame中定义了RE_RECEIVED2、让RE_RECEIVED的执行在CclientView中:将PostMessage(AfxGetApp()->m_pMainWnd->m_hWnd,RE_RECEIVED,(WPARAM)lpBuf1,0),这一句的第一个参数改为CclientView的指针,可以通过以下两句获取视图的指针:
CMainFrame * pMainFrm = (CMainFrame*)AfxGetMainWnd();
//找到CclientView指针
CView * active = ((CclientView*)pMainFrm->GetActiveView();
如果是多文档程序,
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;// Get the active MDI child window.
CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame();// or CMDIChildWnd *pChild = pFrame->MDIGetActive();// Get the active view attached to the active MDI child
// window.
CMyView *pView = (CMyView *) pChild->GetActiveView();
//找到CclientView指针
CView * active = ((CView*)pMainFrm->GetActiveView();我用这两句获得视图指针,可是怎么数组中没有值呢。我怎么才能把CView转换成CclientView呢?