自定义的按钮类
class CMyButton :public CButton
{
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
自定义的按钮类消息映射
BEGIN_MESSAGE_MAP(CMyButton,CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()
自定义的按钮类消息处理函数
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
WPARAM wParam = (((DWORD)WM_LBUTTONDOWN) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_COMMAND, wParam, 0);//WM_COMMAND//WM_LBUTTONDOWN
CButton::OnLButtonDown(nFlags, point);
}
void CMyButton::OnLButtonUp(UINT nFlags, CPoint point)
{
WPARAM wParam = (((DWORD)WM_LBUTTONUP) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_LBUTTONUP, wParam, 0);//WM_COMMAND//WM_LBUTTONDOWN
CButton::OnLButtonUp(nFlags, point);
}
在一个对话框中创建了一个按钮CMyButton *m_pButtonXplus;两个分别处理按钮被按下、弹起的消息处理函数
public:
afx_msg void OnMouseDownButtonXplus();
afx_msg void OnMouseUpButtonXplus();消息映射
BEGIN_MESSAGE_MAP(CPCtrlDlg, CDialog)
ON_COMMAND(IDC_MYBUTTON_XPLUS, &CPCtrlDlg::OnMouseDownButtonXplus)//使用ON_COMMAND可以响应WM_COMMAND消息
ON_WM_LBUTTONUP(IDC_MYBUTTON_XPLUS, &CPCtrlDlg::OnMouseUpButtonXplus)//不响应WM_LBUTTONUP消息
END_MESSAGE_MAP()
class CMyButton :public CButton
{
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
自定义的按钮类消息映射
BEGIN_MESSAGE_MAP(CMyButton,CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()
自定义的按钮类消息处理函数
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
WPARAM wParam = (((DWORD)WM_LBUTTONDOWN) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_COMMAND, wParam, 0);//WM_COMMAND//WM_LBUTTONDOWN
CButton::OnLButtonDown(nFlags, point);
}
void CMyButton::OnLButtonUp(UINT nFlags, CPoint point)
{
WPARAM wParam = (((DWORD)WM_LBUTTONUP) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_LBUTTONUP, wParam, 0);//WM_COMMAND//WM_LBUTTONDOWN
CButton::OnLButtonUp(nFlags, point);
}
在一个对话框中创建了一个按钮CMyButton *m_pButtonXplus;两个分别处理按钮被按下、弹起的消息处理函数
public:
afx_msg void OnMouseDownButtonXplus();
afx_msg void OnMouseUpButtonXplus();消息映射
BEGIN_MESSAGE_MAP(CPCtrlDlg, CDialog)
ON_COMMAND(IDC_MYBUTTON_XPLUS, &CPCtrlDlg::OnMouseDownButtonXplus)//使用ON_COMMAND可以响应WM_COMMAND消息
ON_WM_LBUTTONUP(IDC_MYBUTTON_XPLUS, &CPCtrlDlg::OnMouseUpButtonXplus)//不响应WM_LBUTTONUP消息
END_MESSAGE_MAP()
WPARAM wParam = (((DWORD)WM_LBUTTONDOWN) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_COMMAND, wParam, 0);//WM_COMMAND//WM_LBUTTONDOWN
这是在做什么?
//WPARAM wParam = (((DWORD)WM_LBUTTONDOWN) << 16) + ((DWORD)GetDlgCtrlID());
::SendMessage(this->GetParent()->GetSafeHwnd(),WM_COMMAND, 0, 0);//向按钮所在窗口发送一个消息