Mfc 如何将信息粘贴到筛选的CHeaderCtrl中

Mfc 如何将信息粘贴到筛选的CHeaderCtrl中,mfc,Mfc,我们有一个使用CHeaderCtrl的MFC应用程序,并且一直使用HDS_FILTERBAR样式来过滤数据。效果很好。但是我们的用户希望能够将文本粘贴到过滤单元中。我还没有找到一种方法来获取指向任何CEdit类型控件的指针,以便调用>粘贴。在应用程序的::PreTranslateMessage的筛选器中,我成功地检测到了Control-V。有一种方法可以通过CHeaderCtrl->SetItem调用将文本发送到筛选器,但这将立即启动筛选器。我只想能够粘贴文本 所以…我尝试(绝望地)使用keyb

我们有一个使用CHeaderCtrl的MFC应用程序,并且一直使用HDS_FILTERBAR样式来过滤数据。效果很好。但是我们的用户希望能够将文本粘贴到过滤单元中。我还没有找到一种方法来获取指向任何CEdit类型控件的指针,以便调用>粘贴。在应用程序的::PreTranslateMessage的筛选器中,我成功地检测到了Control-V。有一种方法可以通过CHeaderCtrl->SetItem调用将文本发送到筛选器,但这将立即启动筛选器。我只想能够粘贴文本

所以…我尝试(绝望地)使用keybd_事件和SendInput来强制击键。这是有效的,但有不希望的副作用,可能是由于MFC的消息处理,在我的例子中,用户已经按下了Control+V。但在发送字母“A”并强制按下SHIFT键时,我意外发现CHeaderCtrl的过滤器确实支持粘贴,如果您:

控制+换档+V

问题是它很难做到,而且很难告诉我的用户这样做

我可以用keybd_事件来模拟这个序列,但同样,它真的很奇怪


任何人都能找到一种方法来访问CEdit(如果有的话)或了解其他解决方法吗?我尝试使用间谍工具,但不确定要寻找什么。很抱歉写了这么长的文章。

所以请从加速器列表中删除Ctrl+V,您可以在控件中处理它。。。
(根据注释添加答案)。

您的加速器4列表中是否有Ctrl+V?而这就是问题所在。该消息可能由您的全局加速器解释。因此,您可以签入具有焦点的PreTranslateMessage例程,在本例中直接调用TranslateMessage/DispatchMessageYes,就是这样。我觉得自己很愚蠢。我已经好几年没有检查加速器表了,我们甚至没有直接使用Control-V。非常感谢你想到了显而易见的事情。