假设我在CEdit后代中有一个wm_paste消息的处理程序:
LRESULT CMyEdit::OnPaste(WPARAM wParam, LPARAM lParam)
{
//do some processing
return 0;
}
让我们说在某些情况下我想触发粘贴的默认行为 从这种方法。我该怎么做? CEdit :: OnPaste不存在......
干杯
答案 0 :(得分:3)
致电CWnd::DefWindowProc
,传递WM_PASTE
,wParam
和lParam
。
通常,基类中的OnXxx
处理程序由一行调用DefWindowProc
组成 - 如果存在CEdit::OnPaste
,那就是它会做什么。
答案 1 :(得分:1)
您也可以简单地调用CWnd :: Default。此函数在wincore.cpp中定义,使用_afxThreadState.GetData()获取有关当前正在处理的消息的信息,然后调用CWnd :: DefWindowProc。
我提到这一点,因为如果你在消息映射中使用了ON_WM_PASTE(),因此没有OnPaste函数的参数,那么Tim Robinson提到的解决方案将无法工作,因为没有wParam和lParam参数传递给CWnd :: DefWindowProc函数。