我正在维护一个包含ComponentOne VSFlexGrid 7.0的VB6表单应用程序。我们有一个自定义上下文菜单,允许用户执行一些特殊的复制和粘贴操作。最近,我们遇到了以下问题:
- 在其中一个单元格中突出显示一些文本。
- 右键单击单元格,文本仍然突出显示。
- 选择其中一个上下文菜单选项。
- 所请求的上下文菜单操作发生。
- 另一个类似于此处(链接)显示的上下文菜单出现,其中包括“从右到左的阅读顺序”,“打开IME”和“重新转换”等选项。
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的人给我更多关于发生的事件序列以及如何防止这个额外的上下文菜单出现的详细信息。