CxImage Demo 改成单文档后文档里的线程投递消息,视类无反应

CxImage Demo 改为单文档后文档里的线程投递消息,视类无反应

只修改了一个函数做测试OnCximageRotatel---向左旋转,
现在贴主要代码如下:

void CXDoc::OnCximageRotatel()
{
// TODO: Add your command handler code here
m_MenuCommand=ID_CXIMAGE_ROTATEL;
m_hThread=(HANDLE)_beginthread(RunCxImageThread,0,this);
}



void /*unsigned long _stdcall*/ RunCxImageThread(void *lpParam)
{
CXDoc *pDoc = (CXDoc *)lpParam;
if (pDoc==NULL) return;
if (pDoc->m_mainImage==NULL){
pDoc->m_hThread=0;
return;
}

//prepare for elaboration
pDoc->m_mainImage->SetProgress(0);
pDoc->m_mainImage->SetEscape(0);

//pDoc->SubmitUndo();

// auxilary thread for progress bar
pDoc->m_hProgress = (HANDLE)_beginthread(RunProgressThread,0,pDoc);

pDoc->Stopwatch(0);

bool status = true;

switch (pDoc->m_MenuCommand)
{
case ID_CXIMAGE_ROTATEL:
status = pDoc->m_mainImage->RotateLeft();
if (status) pDoc->RegionRotateLeft();
break;
}
pDoc->Stopwatch(1);

pDoc->m_mainImage->SetProgress(100);

if (!status){
CString s = pDoc->m_mainImage->GetLastError();
AfxMessageBox(s);
}

pDoc->m_hThread=0;

_endthread();

}




//////////////////////////////////////////////////////////////////////////////
void /*unsigned long _stdcall*/ RunProgressThread(void *lpParam)
{
CXDoc *pDoc = (CXDoc *)lpParam;
POSITION pos;
CView *pView;
while(pDoc->m_hThread){
Sleep(333);
if(!pDoc->m_mainImage) break;
if(pDoc->m_mainImage->GetEscape()) break;
long n=pDoc->m_mainImage->GetProgress();
pos = pDoc->GetFirstViewPosition();
pView = pDoc->GetNextView(pos);
if (pView) SendMessage(pView->m_hWnd, WM_USER_PROGRESS,n,0);
}
pos = pDoc->GetFirstViewPosition();
pView = pDoc->GetNextView(pos);
if (pView) 
    SendMessage(pView->m_hWnd, WM_USER_PROGRESS,100,0);
Sleep(111);
pos = pDoc->GetFirstViewPosition();
pView = pDoc->GetNextView(pos);
if (pView)
{
SendMessage(pView->m_hWnd, WM_USER_NEWIMAGE,0,0);
}
pDoc->m_hProgress = 0;

_endthread();
return;
}


看CxImage 自带的Demo  SendMessage(pView->m_hWnd, WM_USER_NEWIMAGE,0,0);发出后,视类的onUpdate()马上收到消息,但改了以后执行完线程后,断点进入不了视类的onUpdate(),也就不能更新视类,请求帮忙