虽然我有丰富的软件经验,但我没有做过大量的 Windows 编程。我正在尝试从线程发布 WM_USER 消息,以便在主 UI 线程中获取它,但我遇到了一些麻烦。这是在 C++ 中使用 VS2010 和 MFC。
因此,我创建了一个消息映射,
#define WM_MYMSG (WM_USER + 77)
BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
ON_MESSAGE(WM_MYMSG, DoSomething)
END_MESSAGE_MAP()
声明处理函数如下,
afx_msg LRESULT DoSomething(WPARAM wParam, LPARAM lParam);
并将函数体写为,
LRESULT CMyApp::DoSomething( WPARAM wParam, LPARAM lParam )
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
CallSomeFunction();
return 0L;
}
据我所知,这完全符合 MSDN 所说的here。
http://msdn.microsoft.com/en-gb/library/k35k2bfs(v=vs.100).aspx
但是我得到了一个
error C2440: 'static_cast' : cannot convert from 'LRESULT (__cdecl CMyApp::*)(WPARAM,LPARAM)' to 'LRESULT (__cdecl CWnd::* )(WPARAM,LPARAM)'
与线有关
ON_MESSAGE(WM_AVATAR_SCALE_MSG, DoSomething)
谁能让我知道问题是什么?
谢谢阅读。
保罗