Я поддерживаю приложение с формой VB6, которая содержит ComponentOne VSFlexGrid 7.0. У нас есть пользовательское контекстное меню, которое позволяет пользователям выполнять некоторые специализированные операции копирования и вставки. Недавно мы столкнулись со следующей проблемой:
- Выделите текст в одной из ячеек.
- Щелкните правой кнопкой мыши в ячейке, текст по-прежнему выделен.
- Выберите один из вариантов контекстного меню.
- Запрошенная операция контекстного меню происходит.
- Другое контекстное меню, похожее на показанное здесь , с такими параметрами, как «Порядок чтения справа налево», «Открыть 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, пожалуйста, дать мне более подробную информацию о том, какая последовательность событий происходит, и как предотвратить появление этого дополнительного контекстного меню?