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_PASTEwParam然后lParam

通常OnXxx,基类中的处理程序由一行调用DefWindowProc——如果CEdit::OnPaste存在,它会这样做。

于 2010-11-03T14:29:00.120 回答
1

您也可以简单地调用 CWnd::Default。此函数在 wincore.cpp 中定义,使用 _afxThreadState.GetData() 获取当前正在处理的消息的信息,然后调用 CWnd::DefWindowProc。

我提到,因为如果您在消息映射中使用 ON_WM_PASTE() 宏,因此没有 OnPaste 函数的参数,那么 Tim Robinson 提到的解决方案将不起作用,因为没有 wParam 和 lParam 参数传递给 CWnd::DefWindowProc .

于 2016-06-16T05:02:27.877 回答