WS_DISABLED и Windows Messages

Тема в разделе "WASM.WIN32", создана пользователем Arthur, 16 фев 2009.

  1. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Доброе время суток!

    Вопрос следующий: Можно ли как нибудь заставить windows посылать абсолютно все сообщения детскому котролу со стилем WS_DISABLED, а не перенаправлять эти сообщения родительскому окну? К примеру WM_[L/R/M]BUTTON[DOWN/UP]?

    Я переназначаю WNDPROC с помощью SetWindowLong, к примеру у STATIC и BUTTON.
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Нет, это зашито в коде системы и это правильно. Иначе бы, к примеру, по заблокированным кнопкам можно было щелкать, что противоречит самой концепции disabled-окна.
     
  3. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Twister
    эх... жаль :dntknw:

    Спасибо за ответ.
     
  4. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Между "абсолютно все сообщения" и "К примеру WM_[L/R/M]BUTTON[DOWN/UP]" есть все же некоторая разница :)
    И если приспичит, то и по заблокированным кнопкам можно пощелкать:
    Код (Text):
    1.     .elseif uMsg==WM_LBUTTONDOWN ; ( || uMsg==WM_RBUTTONDOWN  || uMsg==WM_MBUTTONDOWN  || uMsg==WM_LBUTTONUP || uMsg==WM_RBUTTONUP || uMsg==WM_MBUTTONUP )
    2.       invoke GetWindowRect,hwbtn,addr rt
    3.       invoke MapWindowPoints,0,hWnd,addr rt,2
    4.       mov eax,lParam
    5.       mov ecx,eax
    6.       and eax,0ffffh
    7.       shr ecx,16
    8.       invoke PtInRect,addr rt,eax,ecx
    9.       test eax,eax
    10.       jz @f
    11.     invoke SendMessage,hwbtn,uMsg,wParam,lParam
    12.     xor eax,eax
    13.     .else
    14. @@:
    15.         invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    16.     .endif
    Грубо, без вылизывания:
     
  5. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    kero
    О! Я то с WindowFromPoint мучался :) Спасибо за пример :)