捕获CListCtrl中的删除键并进行一些处理

时间:2010-05-28 14:00:58

标签: visual-c++ mfc

我有一个继承自CListCtrl类的类,比如class list。 我有另一个类dlg,它继承自CDialog。

类dlg包含类列表的实例。

我在类dlg中有一个删除按钮,我在其中删除了listCtrl中的所选项目,并进行了大量其他处理。 我想在删除键上使用相同的功能。

我添加了OnKeyDown()fn是我的类列表,我可以在其中捕获VK_DELETE键。但我的问题是,如何在对话框类中进行我需要做的工作。 所有处理都是基于dlg类而不是基于列表类。 我有很多这样的dlg类,它们具有不同的数据,并且在每个dlg类中处理都是不同的。

我尝试在对话框类中捕获VK_DELETE,但如果焦点在列表类上,它就不会捕获它。

我完全陷入困境,不知道如何做到这一点。

请告诉我如何做到这一点。

谢谢, SG

1 个答案:

答案 0 :(得分:1)

如何将List类中捕获的调用委托给父Dialog类。因此,您在List类上捕获VK_DELETE,并向父级说明您收到了Delete命令。因此,如果您愿意,可以将所有处理保留在父Dialog类上。

((CMyParentDialog*) GetParent())->OnDeleteKeyPressed(this);

或者更好的是,创建自定义消息并将其发布到父窗口。

#define W_DELETE_PRESSED_ON_LIST (WM_USER + 1)

GetParent()->PostMessage(WM_DELETE_PRESSED_ON_LIST);