Сообщение WM_COMMAND

Const WM_COMMAND = &H111

Окно получает сообщение WM_COMMAND, когда пользователь выбирает какой-либо пункт меню окна, включая всплывающее меню. После получения этого сообщения, окно должно исполнить любую задачу или операцию пункта меню

Возвращаемое значение

Сообщение WM_COMMAND всегда возвращает 0

Параметры

wParam
Старшее слово - код уведомления сообщения: 0 - значит сообщение было сгенерировано при выборе пункта меню, 1 - значит сообщение было сгенерировано клавишей-акселератором. Младшее слово содержит идентификатор пункта меню, который пользователь выбрал
lParam
Дескриптор элемента управления, пославшего сообщение. Если никакой элемент управления не посылал сообщения, тогда 0

Пример

' смотри также пример shell32dlg.zip

' Создадим две процедуры,
' позволяющие свернуть все окна и
' отменить эту операцию
' Сворачиваем все окна
' Если вы кликните правой кнопкой на панели задач,
' то увидите эти команды

Public Sub MinimizeAll() 
  
    Dim lngHwnd As Long
' Находим дескриптор панели задач  
    lngHwnd = FindWindow("Shell_TrayWnd", vbNullString)
    Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL, 0&)
End Sub

' Процедура для отмены
' операции Сворачиваем все окна
Public Sub RestoreAll()

Dim lngHwnd As Long
lngHwnd = FindWindow("Shell_TrayWnd", vbNullString)
Call PostMessage(lngHwnd, WM_COMMAND, MIN_ALL_UNDO, 0&)
End Sub

Смотри также

WM_SYSCOMMAND

Категория

Меню