2013-10-02 130 views
0

我们在VS2010中使用包含CMFCToolBarEditBoxButton的CMFCToolBar的MFC SDI应用程序。当用户将某些东西粘贴到编辑框中时,是否有办法处理粘贴事件?在CMFCToolBarEditBoxButton中捕获粘贴事件

我们在主窗口中处理ON_COMMAND(ID_EDIT_PASTE, OnEditPaste),但当焦点位于CMFCToolBarEditBoxButton内部时,粘贴消息没有增加。

回答

0

从MFC Sources [afxtoolbareditboxbutton.cpp],它看起来像底层CMFCToolBarEditCtrl的'Paste()'函数在Ctrl-V期间直接调用,'Paste()'成员函数只发送WM_PASTE到编辑窗口。

可以尝试做一个处理程序WM_PASTE

This SO Answer有一个如何做到这一点的例子。

+0

我无法弄清楚如何将处理程序附加到已在CMFCToolBarEditBoxButton内部创建的CEdit中,或者创建不同的CEdit或其他可以处理WM_PASTE的按钮的子类。有任何想法吗?谢谢! – sleepp

+0

你可以重写'CMFCToolBarEditBoxButton :: CreateEdit()'[MFC Source afxtoolbareditboxbutton.cpp]并提供你自己的CEdit派生类,你可以在那里处理WM_PASTE? –