自定义ON_NOTIFY消息

    平时,我们用的自定义消息都是ON_MESSAGE消息,但是这种消息无法获取指定的控件ID,所以,下面我要自定义的是ON_NOTIFY消息。可以指定控件进行消息响应。

第一步:定义消息

#define  WM_NOTIFY   WM_USER+100

第二步:定义该消息的发送

(也就是当程序执行到哪一处时,就要是用该消息发送内容的位置)

        NMHDR   nmhdr ;
	nmhdr.hwndFrom = this->m_hWnd;
	nmhdr.idFrom = 0;
	nmhdr.code = WM_NOTIFY;
	::SendMessage(GetParent()->GetSafeHwnd() , WM_NOTIFY ,(WPARAM)nmhdr.idFrom , (LPARAM)&nmhdr);

第三步:在使用的位置进行声明、使用

1:定义该消息

BEGIN_MESSAGE_MAP(CSliderInfoDlg, CDialogEx)
ON_NOTIFY(WM_NOTIFYU , IDC_SLIDER_Type , &CSliderInfoDlg::OnNotifyMessage)
END_MESSAGE_MAP()

2:声明

afx_msg void OnNotifyMessage ( NMHDR* pNMHER, LRESULT  *pResult );//获取按钮控件的消息	

3:使用

void CSliderInfoDlg::OnNotifyMessage(NMHDR* pNMHER, LRESULT  *pResult)
{
	CString strInfo , strInfo2;

	int n = m_SliderType.GetPos();
	strInfo.Format(L"n = %d",n);
	TRACE("n = %d\r\n",n);
	m_edit.SetWindowTextW(strInfo);
}


猜你喜欢

转载自blog.csdn.net/qq_32716885/article/details/80221736