高分求助,关于消息捕获,UP有分
wj59 2003-07-16 09:55:47 我创建了一个COM,有一个方法(HWND参数)用 peekmessage 捕获HWND的消息
STDMETHODIMP CPMsg::BeginEdit(long hWnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
m_hWnd = (HWND)hWnd;
DoTest();
// AfxBeginThread (MyThread,this);
return S_OK;
}
void CPMsg::DoTest();
{
m_bDO = TRUE;
MSG msg;
while ( m_bDO )
{
while ( ::PeekMessage( &msg, m_hWnd, 0,0 ,PM_REMOVE) )
{
//.....
}
}
UINT MyThread( LPVOID pParam )
{
CPMsg *pLV = (CPMsg *)pParam;
pLV->DoTest ();
return 0;
}
问题是:在COM里直接调用DoTest()是可以的(但一直循环,系统挂起),于是我另起了一个线程MyThread()来调用DoTest(),这时就捕获不到任何消息了,why?
如有其他好办法,望给出源码
UP有分