做了一個對話框,有一些按鈕,對應有一些消息處理函數。這時,再從該對話框類中派生一個新類,再任何代碼都不加的情況下。這個新對話框表現會怎麼樣?界面中的按鈕現在還能處理嗎?會出現其它什麼亂七八糟不可理解的事情嗎?消息的轉發如何進行?就是說,當你點過一個按鈕以後會怎麼樣?因為新類中並沒有處理這個消息,那麼這個消息會傳給父類嗎?
做了一個對話框,有一些按鈕,對應有一些消息處理函數。這時,再從該對話框類中派生一個新類,再任何代碼都不加的情況下。這個新對話框表現會怎麼樣?界面中的按鈕現在還能處理嗎?會出現其它什麼亂七八糟不可理解的事情嗎?消息的轉發如何進行?就是說,當你點過一個按鈕以後會怎麼樣?因為新類中並沒有處理這個消息,那麼這個消息會傳給父類嗎?
比如:
void MyDlg::OnDraw(CDC* pDC)
{
..........you code
Dlg::OnDraw(pDC);//Dlg是副类
}
BEGIN_MESSAGE_MAP(CRipDlg, CDialog)
//{{AFX_MSG_MAP(CRipDlg)
ON_WM_LBUTTONDBLCLK()
ON_WM_PAINT()
ON_BN_CLICKED(IDC_STOPRIP, OnStoprip)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_PAUSE, OnPause)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
子類的映射表(空的):
BEGIN_MESSAGE_MAP(CDlg2, CDialog)
//{{AFX_MSG_MAP(CDlg2)
// NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAP
END_MESSAGE_MAP()
在子類DoModal出現的窗口(它用了和基類一樣的對話框模板),點按鈕或按鼠標都沒有反應。按理說,鼠標雙擊事件不應該傳到基類去嗎??
BEGIN_MESSAGE_MAP(CDlg2, CRipDlg)//
//{{AFX_MSG_MAP(CDlg2)
// NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAP
END_MESSAGE_MAP()
激动!:)