Как обработать WM_NCHITTEST

Тема в разделе "WASM.BEGINNERS", создана пользователем Angel01, 19 янв 2006.

  1. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...
    Может и глупый вопрос, но всёже...

    Вобщем мне нужно сделать окно(диалоговое), которое перетаскивается за любую точку. Я обрабатываю WM_NCHITTEST, но когда, я возвращаю в eax HTCAPTION ничего не происходит(окно не перетаскивается) Как решить эту проблему?

    Зарание спасибо за ответ.
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Код (Text):
    1.   .if uMsg==WM_LBUTTONDOWN
    2.     invoke SendMessage, hWin, WM_NCLBUTTONDOWN, HTCAPTION, 0
    3.     invoke ReleaseCapture
    4.     xor    eax,eax
    5.     ret
     
  3. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...
    Спасибо большое, я тоже так пытался сделать, но обрабатывал не то сообщение WM_MBUTTONDOWN(Хренов MSDN)

    Кстати, а зачен нужноinvoke ReleaseCapture ?



    А вот ещё вопрос, который меня давно терзает:

    Как узнать, когда мышь покидает клиентское пространство кнопки? И когда в него входит?
     
  4. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...
    И вот ещё вопрос:

    Каким образом можно изменить иконку приложения(кот отображается в Explorer)
     
  5. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...
    Пробовал через UpdateResource, но сколько не мучился - всё бесполезно...А в MSDN по поводу "как изменить иконку" ничего нет:dntknw:((
     
  6. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    WM_MOUSEHOVER/WM_MOUSELEAVE
     
  7. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...


    Уже пробовал. Не работает. И вообще в MSDN сказанно , что WM_MOUSEHOVER отправляется, когда мышка некоторое время находится над объектом.
     
  8. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    Как пробовал?



    Время задержки составляет несколько мс.
     
  9. Angel01

    Angel01 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2005
    Сообщения:
    16
    Адрес:
    от туда...
    Всё равно не работает. Есть пример?
     
  10. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Angel01

    TrackMouseEvent не забыл?