我在自己创建的类CComm里打开了一个线程,又从线程中调用了CComm里的一个函数,可是在这个函数里向view类发送消息怎么也不成功,程序如下:
//-----------获取View类指针-------多文档方式--------------------------------------------
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame(); CView *pView = (CView *) pChild->GetActiveView();
if(pView!=NULL)
pView->SendMessage(WM_COMM_RXCHAR,(WPARAM) buf,(LPARAM) len);//向view类发送消息调试发现pView指针为0,貌似pChild也没有得到(虽然不是0);把上面一段程序移到此类中任意其他函数中,都可以正常发送消息,为什么线程调用的函数就不可以呢?请高手帮帮忙吧,谢谢啦
//-----------获取View类指针-------多文档方式--------------------------------------------
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame(); CView *pView = (CView *) pChild->GetActiveView();
if(pView!=NULL)
pView->SendMessage(WM_COMM_RXCHAR,(WPARAM) buf,(LPARAM) len);//向view类发送消息调试发现pView指针为0,貌似pChild也没有得到(虽然不是0);把上面一段程序移到此类中任意其他函数中,都可以正常发送消息,为什么线程调用的函数就不可以呢?请高手帮帮忙吧,谢谢啦
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;你看你在线程中得到的这个pFrame和你在非线程中得到的值是同一个东西吗?_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp()
{ return afxCurrentWinApp; }
可能你没有选中你要的窗体