2010-11-03 54 views
2

讓我們說我有一個CEdit的後裔WM_PASTE消息的處理程序:CEdit的,WM_PASTE

LRESULT CMyEdit::OnPaste(WPARAM wParam, LPARAM lParam) 
{ 
//do some processing 
return 0; 
} 

,讓我們說,在某些情況下,我想從這個方法觸發貼 的默認行爲。我該怎麼做? CEdit的:: OnPaste不存在...

乾杯

回答

3

呼叫CWnd::DefWindowProc,通過它WM_PASTEwParamlParam

通常,基類中的OnXxx處理程序由一條調用DefWindowProc的單一行組成 - 如果CEdit::OnPaste存在,則它將執行此操作。

+0

謝謝你,它的實際工作:) – Greg 2010-11-03 15:16:12

1

你也可以簡單地調用CWnd ::默認。此功能,這是在WINCORE.CPP定義的,使用_afxThreadState.GetData()來獲得關於當前正在處理的消息中的信息,然後調用的CWnd :: DefWindowProc函數。

我提到過,因爲如果您在消息映射中使用了ON_WM_PASTE()宏,因此沒有參數給OnPaste函數,那麼由Tim Robinson提到的解決方案將無法工作,因爲沒有wParam和lParam參數要傳遞給的CWnd :: DefWindowProc函數。