class CMyButton : public CButton {...}; // m_myButton is a CMyButton object member of CAboutDlgBOOL CXXXDlg::OnInitDialog() { CDialog::OnInitDialog(); // IDC_BUTTON1 is the ID for a button on the // dialog template used for CAboutDlg. m_myButton.SubclassDlgItem(IDC_BUTTON1, this); return TRUE; // Return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
// m_myButton is a CMyButton object member of CAboutDlgBOOL CXXXDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// IDC_BUTTON1 is the ID for a button on the
// dialog template used for CAboutDlg.
m_myButton.SubclassDlgItem(IDC_BUTTON1, this); return TRUE; // Return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
然后在主窗口画button,然后为button建立控件成员对象,这时回到主窗口类声明中,手动把所有对象的CButton类描述改成CNotifyButton类,这时候,你的Button就自然可以把MouseDown和MouseUp消息按照你的设定抛给主窗口了,这就是你说的那句话的含义