MFC 用户自定义消息 自定义notify

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);
}

猜你喜欢

转载自blog.csdn.net/zq4132/article/details/55096730