edit control

Тема в разделе "WASM.WIN32", создана пользователем Euler, 11 авг 2010.

  1. Euler

    Euler New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2009
    Сообщения:
    56
    Подскажите пожалуйста, как можно заставить "эдит" обработать нажатие правой кнопки мыши по-своему, т.е. чтоб не появлялось меню "copy/past".
     
  2. valhalla

    valhalla New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2010
    Сообщения:
    9
    subclassing
     
  3. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    WM_MOUSEMOVE ?
     
  4. sometime

    sometime Odessa

    Публикаций:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    227
    Адрес:
    sunday
    onSide
    WM_RBUTTONDOWN\WM_RBUTTONUP ?
     
  5. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    может быть) это первое что мсдн показал. Кстати описание одинаковое, там еще есть WM_LBUTTONDBLCLK, тоже такой же. Тока что проверил в Spy++ WM_MOUSEMOVE приходил на окошко Win+R
     
  6. sometime

    sometime Odessa

    Публикаций:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    227
    Адрес:
    sunday
    это когда нажал на кнопку и потаскать решил - да, но тут вполне достаточно WM_RBUTTONDOWN обработать.
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Менюшки и прочие клики срабатывают не на нажатие, а на отпускание кнопки WM_RBUTTONUP
     
  8. Euler

    Euler New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2009
    Сообщения:
    56
    Спасибо, помогло :) .
    Я первым делом вставил обработку WM_RBUTTONUP в процедуру обработки сообщений основного окна, но на edit это почему-то никак не повлияло.
     
  9. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Euler
    И не должно, т.к. все сообщения шлются конкретным окнам - раз клик произошел на эдите, то и WM_RBUTTONUP предназначено этому эдиту и ф-я DispatchMessage (в цикле обработки сообщений) передаст его в процедуру не основного окна, а эдита. Поэтому нужно либо сабклассить эдит, либо фильтровать сообщения непосредственно в цикле выборки перед IsDialogMessage\Translate\Dispatch