2019独角兽企业重金招聘Python工程师标准>>>
1.首先定义消息变量
#define WM_POST_MSG WM_USER + 2
2.增加消息处理函数
afx_msg LRESULT UpdateStatic(WPARAM wParam, LPARAM lParam);
3.增加消息映射
ON_MESSAGE(WM_POST_MSG,UpdateStatic)
当调用PostMessage函数时如下
CString *msg = new CString("this is msg");
::PostMessage(m_hWnd,WM_POST_MSG,0,(LPARAM)msg);
关键在这个地方,为什么要new一个对象呢,先看接受消息函数怎么样处理的
LRESULT CPostMessageStringDlg::UpdateStatic(WPARAM wParam, LPARAM lParam)
{CString * temp = (CString *)lParam;MessageBox(*temp);delete temp;return 0L;
}
直接获得先前new对象的地址,因为在先前new的对象没有释放,还在堆中,所以处理函数能够通过参数传递过来的指针找到对象的位置,从而获得这个对象, 最后别忘了delete掉这个对象 。结构体也是如此。