平时,我们用的自定义消息都是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);
}