问题描述
|
在MFC中使用C ++。我正在使用从CWnd派生的网格控件(特别是codeproject上的MFC Grid控件)。我想在用户右键单击单元格时显示上下文菜单。我的想法是处理ON_WM_CONTEXTMENU()消息。
但是,在我的(派生的)网格控件类的OnContextMenu或包含网格控件的对话框类的OnContextMenu中,哪里是处理此问题的最佳位置? MFC中有约定吗?
解决方法
如果有约定,我没有注意到。
我将根据谁拥有构建菜单所需的信息以及谁将处理菜单选择产生的命令进行选择。
,从可用性的角度来看,我不得不说上下文菜单仅包含实际上只是其他UI元素的快捷方式的内容。我举一个例子:在MS Word中,如果右键单击所选文本,则有一个上下文菜单“复制”。实际上,“复制”菜单项只是主菜单的“编辑”->“复制”的快捷方式。因此,从可用性的角度来看,您的应用程序需要菜单(或按钮)或执行完全相同功能的任何操作。
现在,不能在网格本身中完成主菜单的正弦处理,为什么要在网格中处理连续菜单?在我看来,这是不一致的。
在对话框中而不是控件本身中处理它对我来说似乎更加自然。这与您使用的环境无关。在C#中,我会做完全相同的事情。