1、自定义消息:
第一步自定义消息
#define WM_FAOADD WM_USER+100
第二步定义消息处理函数
afx_msg LRESULT OnMyAdd(WPARAM wParam,LPARAM lPARAM);
第三步消息处理函数与消息进行绑定
ON_MESSAGE(WM_FAOADD,OnMyAdd)
第四步实现函数
LRESULT OnMyAdd(WPARAM wParam,LPARAM lPARAM);
第五步发送消息
::PostMessageA(GetSafeHwnd(),WM_FAOADD,0,0);
发送消息的第一个参数为窗口的句柄。
自定义notify:
1.定义通知类型:
#define WM_GRID_SELECT_CHANGE(WM_USER + 1)
2.增加消息映射函数,并实现:
afx_msg void OnNotifyGridChanged(NMHDR *pNMHDR, LRESULT *pResult);
3.增加映射对应关系:
ON_NOTIFY(WM_GRID_SELECT_CHANGE, GRIDCTRL_ID, &CContradictionRuleView::OnNotifyGridChanged)
4.在子窗口中发送WM_NOTIFY消息
if (this->GetParent())
{
NMHDR nmhdr;
nmhdr.hwndFrom= this->m_hWnd;
nmhdr.idFrom = 0;//m_id;
nmhdr.code = WM_GRID_SELECT_CHANGE; // 用户自定义消息
//发送notify消息
this->GetParent()->SendMessage(WM_NOTIFY, (WPARAM)nmhdr.idFrom,(LPARAM)&nmhdr);
}
{
NMHDR nmhdr;
nmhdr.hwndFrom= this->m_hWnd;
nmhdr.idFrom = 0;//m_id;
nmhdr.code = WM_GRID_SELECT_CHANGE; // 用户自定义消息
//发送notify消息
this->GetParent()->SendMessage(WM_NOTIFY, (WPARAM)nmhdr.idFrom,(LPARAM)&nmhdr);
}