CEditの子孫にwm_pasteメッセージのハンドラーがあるとしましょう。
LRESULT CMyEdit::OnPaste(WPARAM wParam, LPARAM lParam)
{
//do some processing
return 0;
}
場合によっては、このメソッドから貼り付けのデフォルトの動作をトリガーしたいとします。どうすればいいのですか?CEdit::OnPasteは存在しません...
乾杯
CEditの子孫にwm_pasteメッセージのハンドラーがあるとしましょう。
LRESULT CMyEdit::OnPaste(WPARAM wParam, LPARAM lParam)
{
//do some processing
return 0;
}
場合によっては、このメソッドから貼り付けのデフォルトの動作をトリガーしたいとします。どうすればいいのですか?CEdit::OnPasteは存在しません...
乾杯
呼び出しCWnd::DefWindowProc
、それを渡すWM_PASTE
、、wParam
およびlParam
。
通常、OnXxx
基本クラスのハンドラーは、呼び出す1行で構成されます。存在DefWindowProc
する場合CEdit::OnPaste
は、それが実行されます。
CWnd::Defaultを呼び出すこともできます。wincore.cppで定義されているこの関数は、_afxThreadState.GetData()を使用して、現在処理されているメッセージに関する情報を取得してから、CWnd::DefWindowProcを呼び出します。
メッセージマップでON_WM_PASTE()マクロを使用し、OnPaste関数へのパラメーターがない場合、CWnd :: DefWindowProcに渡すwParamおよびlParamパラメーターがないため、TimRobinsonが言及したソリューションは機能しません。 。