VS2008 ON_THREAD_MESSAGE 报错?该怎么解决

VS2008 ON_THREAD_MESSAGE 报错?
.h
#define WM_CHARMSG WM_USER + 101
...
afx_msg void OnShowMsg( WPARAM wParam, LPARAM lParam );

.cpp
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_THREAD_MESSAGE( WM_CHARMSG, OnShowMsg )
END_MESSAGE_MAP()

void CTestDlg::OnShowMsg( WPARAM wParam, LPARAM lParam )
{
return ;
}

提示:
error C2440: “static_cast”: 无法从“void (__thiscall CTestDlg::* )(WPARAM,LPARAM)”转换为“void (__thiscall CWinThread::* )(WPARAM,LPARAM)”

网上搜了下说用ON_MESSAGE代替,可是我用了,进程却收不到消息了。

------解决方案--------------------
用ON_MESSAGE

收不到消息,应该是你发送消息的窗口指针或句柄不对造成的

------解决方案--------------------
你要用PostThreadMessage,就不要.下面这些

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
ON_THREAD_MESSAGE( WM_CHARMSG, OnShowMsg )
END_MESSAGE_MAP()