假设我在 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
,基类中的处理程序由一行调用DefWindowProc
——如果CEdit::OnPaste
存在,它会这样做。
您也可以简单地调用 CWnd::Default。此函数在 wincore.cpp 中定义,使用 _afxThreadState.GetData() 获取当前正在处理的消息的信息,然后调用 CWnd::DefWindowProc。
我提到,因为如果您在消息映射中使用 ON_WM_PASTE() 宏,因此没有 OnPaste 函数的参数,那么 Tim Robinson 提到的解决方案将不起作用,因为没有 wParam 和 lParam 参数传递给 CWnd::DefWindowProc .