2

CEditの子孫にwm_pasteメッセージのハンドラーがあるとしましょう。

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

場合によっては、このメソッドから貼り付けのデフォルトの動作をトリガーしたいとします。どうすればいいのですか?CEdit::OnPasteは存在しません...

乾杯

4

2 に答える 2

3

呼び出しCWnd::DefWindowProc、それを渡すWM_PASTE、、wParamおよびlParam

通常、OnXxx基本クラスのハンドラーは、呼び出す1行で構成されます。存在DefWindowProcする場合CEdit::OnPasteは、それが実行されます。

于 2010-11-03T14:29:00.120 に答える
1

CWnd::Defaultを呼び出すこともできます。wincore.cppで定義されているこの関数は、_afxThreadState.GetData()を使用して、現在処理されているメッセージに関する情報を取得してから、CWnd::DefWindowProcを呼び出します。

メッセージマップでON_WM_PASTE()マクロを使用し、OnPaste関数へのパラメーターがない場合、CWnd :: DefWindowProcに渡すwParamおよびlParamパラメーターがないため、TimRobinsonが言及したソリューションは機能しません。 。

于 2016-06-16T05:02:27.877 に答える