假设我在一个CEdit后代中有一个处理wm_paste消息的函数:
LRESULT CMyEdit::OnPaste(WPARAM wParam, LPARAM lParam)
{
//do some processing
return 0;
}
假设在某些情况下,我希望通过此方法触发粘贴的默认行为。我该怎么做呢?CEdit::OnPaste不存在...
干杯
发布于 2010-11-03 22:29:00
调用CWnd::DefWindowProc
,传递WM_PASTE
、wParam
和lParam
。
通常,基类中的OnXxx
处理程序由调用DefWindowProc
的单个行组成--如果存在CEdit::OnPaste
,它就会这么做。
发布于 2016-06-16 13:02:28
您也可以简单地调用CWnd::Default。这个函数是在wincore.cpp中定义的,它使用_afxThreadState.GetData()来获取当前正在处理的消息的信息,然后调用CWnd::DefWindowProc。
我之所以提到这一点,是因为如果您在消息映射中使用了ON_WM_PASTE()宏,因此没有OnPaste函数的参数,那么Tim Robinson提到的解决方案将无法工作,因为没有wParam和lParam参数可以传递给CWnd::DefWindowProc。
https://stackoverflow.com/questions/4088037
复制相似问题