Menu tracking с помощью клавиатуры - VB

Узнай цену своей работы

Формулировка задачи:

Я поставил иконку в трей. При правом клике мышкой на него я открываю всплывающее меню. Меню я создаю с помощью API функций CreatePopupMenu и AppendMenu. Открываю с помощью TrackPopupMenuEx. Проблема в том, что при открытии меню выбрать один из пунктов можно только с помощью мыши, клвиатура не работает. Как мне добится того, чтобы можно было выбирать с помощью клвиш вверх/вниз? Возможно это часть общей проблемы: гланое окно спрятано, только иконка в трее видна (так надо). окно открывается когда выбирается соответсвующий пункт в меню. Так вот, когда оно открывается оно не активное, т.е. при первом нажатии мышью на одну из его кнопок ничего не происходит. Лишь при повторном нажатии происходит событие. Есть идеи почему это происходит ?

Решение задачи: «Menu tracking с помощью клавиатуры»

textual
Листинг программы
Private Sub ucTrayIcon_Notify(wParam As Long, lParam As Long)
  Select Case (wParam)
  '...........
  '...........
  Case WM_LBUTTONDBLCLK:
    DoEvents
    DoCommand MIE_OPEN
    ' из следующих четырёх вызовов надо опытным путём оставить 1-2:
    SetForegroundWindow Form1.hWnd
    BringWindowToTop Form1.hWnd
    SetActiveWindow Form1.hWnd
    PutFocus Form1.Hwnd
  End Select
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы