我正在维护一个包含 ComponentOne VSFlexGrid 7.0 的 VB6 表单的应用程序。我们有一个自定义上下文菜单,允许用户执行一些专门的复制和粘贴操作。最近,我们遇到了以下问题:
- 突出显示其中一个单元格中的一些文本。
- 右键单击单元格,文本仍然突出显示。
- 选择上下文菜单选项之一。
- 发生请求的上下文菜单操作。
- 将显示另一个与此处所示类似的上下文菜单,其中包含“从右到左的阅读顺序”、“打开 IME”和“重新转换”等选项。
如何使第二个上下文菜单消失?到目前为止,我已经尝试过Microsoft 知识库描述的方法,但没有成功。我的 WindowProc 函数如下:
Function WindowProc(ByVal hw As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Select Case uMsg
Case WM_RBUTTONUP
frmMain.PopupMenu frmMain.mnuPopUp
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, _
uMsg, wParam, lParam)
End Select
End Function
复制操作发生后,我看到的 uMsg 值为 15(WM_PAINT)和 32(WM_SETCURSOR)。我还注意到,当我没有在单元格中突出显示文本时会触发表单级 MouseUp 事件,但是当我在单元格中突出显示文本时它不会触发。
对 VB6 和/或 ComponentOne 有更深入了解的人可以给我更多关于发生的事件序列的详细信息,以及如何让这个额外的上下文菜单不显示?