MFC:处理上下文菜单消息的最佳位置?

时间:2011-05-26 20:25:32

标签: c++ windows mfc event-handling contextmenu

将C ++与MFC一起使用。我正在使用一个源自CWnd的网格控件(特别是代码项目上的MFC网格控件)。我想在用户右键单击单元格时显示上下文菜单。我的想法是处理ON_WM_CONTEXTMENU()消息。

但是,在我的(派生)网格控件类中的OnContextMenu或保存网格控件的对话框类中的OnContextMenu中,处理此问题的最佳位置在哪里? MFC中有约定吗?

2 个答案:

答案 0 :(得分:3)

如果有惯例,我没有注意到。

我会根据谁拥有构建菜单所需的信息以及谁将处理菜单选择产生的命令来选择。

答案 1 :(得分:0)

从可用性的角度来看,我不得不说上下文菜单只包含事实上只是其他UI元素的快捷方式。我举一个例子:在MS Word中你有一个上下文菜单“copy”,以防你右键单击所选文本。 “复制”菜单条目实际上只是主菜单的编辑 - >的快捷方式。复制。因此,从可用性的角度来看,您的应用程序需要一个菜单​​(或一个按钮)或其他完全相同的东西。

现在,处理主菜单的正弦无法在网格中完成,为什么要在网格中处理竞争菜单?对我来说似乎不一致。

在对话框中而不是在控件本身中处理它对我来说似乎更自然。这与您使用的环境无关。在c#中,我会做同样的事情。