CEdit,WM_PASTE

时间:2010-11-03 14:25:37

标签: mfc copy-paste cedit

假设我在CEdit后代中有一个wm_paste消息的处理程序:

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

让我们说在某些情况下我想触发粘贴的默认行为 从这种方法。我该怎么做? CEdit :: OnPaste不存在......

干杯

2 个答案:

答案 0 :(得分:3)

致电CWnd::DefWindowProc,传递WM_PASTEwParamlParam

通常,基类中的OnXxx处理程序由一行调用DefWindowProc组成 - 如果存在CEdit::OnPaste,那就是它会做什么。

答案 1 :(得分:1)

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

我提到这一点,因为如果你在消息映射中使用了ON_WM_PASTE(),因此没有OnPaste函数的参数,那么Tim Robinson提到的解决方案将无法工作,因为没有wParam和lParam参数传递给CWnd :: DefWindowProc函数。