关于自定义消息(注:VS2010与VC6.0是有区别的)

自己定义了消息#define UM_PROGRESS WM_USER+1 
响应函数void OnProgress(); 
消息映射表这样写ON_MESSAGE(UM_PROGRESS,OnProgress) 
调用PostMessage(UM_PROGRESS);
就出现问题了(CMainFrame类中)static_cast”: 无法从“void (__thiscall CMainFrame::* )(void)”转换为“LRESULT (__thiscall
 
解决的办法:把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE; 然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;最后,消息映射如ON_MESSAGE(UM_PROGRESS,&OnProgress)

你可能感兴趣的:(user,2010)