Выбрать элемент меню

Тема в разделе "WASM.BEGINNERS", создана пользователем AndreyXYZ, 14 фев 2009.

  1. AndreyXYZ

    AndreyXYZ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2009
    Сообщения:
    28
    Какое сообщение нужно отправить Windows, чтобы искусственно кликнуть на некоторый элемент меню?
     
  2. AndreyXYZ

    AndreyXYZ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2009
    Сообщения:
    28
    Кликнуть мышью на него не получается, т.к. меню не является окном.
     
  3. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.

    Syntax

    WM_COMMAND

    WPARAM wParam
    LPARAM lParam;

    Parameters

    wParam
    The high-order word specifies the notification code if the message is from a control. If the message is from an accelerator, this value is 1. If the message is from a menu, this value is zero.
    The low-order word specifies the identifier of the menu item, control, or accelerator.

    lParam
    Handle to the control sending the message if the message is from a control. Otherwise, this parameter is NULL.
     
  4. AndreyXYZ

    AndreyXYZ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2009
    Сообщения:
    28
    А как определить идентификатор элемента всплывающего меню (к примеру Edit - Copy)? Нашел следующую функцию.
    Функция GetMenuItemID

    Описание:
    function GetMenuItemID(Menu: HMenu; Pos: Integer): Word;
    Опpеделяет числовой идентификатоp элемента меню, pасположенного в указанной позиции меню.
    Паpаметpы:
    Menu: Идентификатоp всплывающего меню.
    Pos: Позиция элемента в меню, отсчитываемая с нуля.
    Возвpащаемое значение:
    В случае успешного завеpшения возвpащается идентификатоp элемента; 0 - если элемент является всплывающим и -1 - если ошибка.
    функция находится в файле user32.dll

    Но она всегда возвращает -1
     
  5. AndreyXYZ

    AndreyXYZ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2009
    Сообщения:
    28
    Неужели никто не знает? Как нажать на элемент меню "Copy"???
     
  6. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    в своём приложении?
     
  7. perez

    perez Member

    Публикаций:
    0
    Регистрация:
    25 апр 2005
    Сообщения:
    502
    Адрес:
    Moscow city
    Запустить шпион сообщений (со студией поставляется). Отловить WM_COMMAND окна, получающего сообщение. Посмотреть параметры.