我们有一个使用CHeaderCtrl的MFC应用程序,并且一直使用HDS_FILTERBAR样式来过滤数据。效果很好。但我们的用户希望能够将文本粘贴到过滤单元格中。我还没有找到一种方法来获取指向任何CEdit类型控件的指针,以便我可以调用>粘贴。我已经设法在应用程序的:: PreTranslateMessage中的过滤器中检测到Control-V。有一种方法可以通过CHeaderCtrl-> SetItem调用将文本发送到过滤器,但这会立即启动过滤器。我只是希望能够粘贴文本。
所以...我尝试使用keybd_event和SendInput来强制击键(我绝望了)。这有效,但有不良副作用,可能是由于MFC的消息处理,在我的情况下,用户已按下Control + V。但是在发送字母'A'并强制SHIFT键时,我意外地发现CHeaderCtrl的过滤器确实支持粘贴,如果你:
CONTROL + SHIFT + V
问题是很难做到,很难告诉我的用户这样做。
我可以使用keybd_event来模拟这个序列,但同样,它真正的古怪。
任何人都可以找到一种方法来获取CEdit(如果有的话)到过滤的CHeaderCtrl或知道另一种解决方法吗?我尝试使用间谍实用程序,但不知道该寻找什么。对不起,很长的帖子。
答案 0 :(得分:0)
因此从加速器列表中删除Ctrl + V,您可以在控件内处理它... (根据评论添加了答案)。