关于线程函数中的PostMessage函数的报错,该怎么处理

关于线程函数中的PostMessage函数的报错
我的线程函数如下:
UINT CSASEDoc::MyThreadProc( LPVOID lpParam )
{
CSingleLock singlelock(&m_critSection); //创建一个加锁对象
singlelock.Lock();
threadInfo* pInfo=(threadInfo*)lpParam;
   
pInfo->pDoc->m_sData.Empty();

CTime ts,te;
CTimeSpan tspan;
CString sBuf;
ts=CTime::GetCurrentTime();
  pInfo->pDoc->m_glEle.StaticAnalysis();
te=CTime::GetCurrentTime();
  singlelock.Unlock();
tspan=te-ts;
sBuf.Format("计算用时: %d 秒。",tspan.GetTotalSeconds());
::PostMessage(pInfo->pFrame->GetSafeHwnd(), WM_USERMSG,(WPARAM)str,0);
AfxMessageBox(sBuf);

return 0;
}
颜色标记的是我添加进去的一个发送消息的,添加之前程序是完全OK的,并且我也在头文件中自定义了消息,和声明消息映射、实现消息映射,错误总说PostMessage函数不接受2个参数,但是我这里明明是4个参数都写了,怎么会这样提示呢,并且我的CPP中实现消息映射ON_MESSAGE(WM_USERMSG,OnThreadended)也会报错

------解决方案--------------------
探讨

引用:

WM_USERMSG怎么定义的


#define WM_USERMSG WM_USER+100;