проблема с NMHDR при WM_NOTIFY

Тема в разделе "WASM.WIN32", создана пользователем NoName, 23 авг 2004.

Статус темы:
Закрыта.
  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Я локально определяю NMHDR структуру.

    Вместе с сообщением WM_NOTIFY приходит lParam, содержащий адрес такой же, как я понял, но уже заполненой структуры.

    Как мне поместить в мою пустую локальную структуру NMHDR уже заполненную структуру, адрес которой в lParam?

    Простите за ламеризм.
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Получить доступ к полям возвращенной структуры можно так:

    mov edx,lParam

    mov eax,[edx.NMHDR].hwndFrom



    Можно при помощи MemCopy скопировать кусок памяти начинающийся с адреса, указанного в lParam по адресу addr <твоя структура> и соответственно длина куска sizeof NMHDR. Или API - CopyMemory.
     
  3. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Действительно ламерский вопрос. Разобрался уже сам.

    .elseif eax==WM_NOTIFY

    mov ecx,lParam

    mov eax,(NMHDR PTR [ecx]).code

    cmp eax,NM_RCLICK

    ;...
     
  4. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    NoName



    Не верно Ваша структура не пустая, она заполнена мусором, который находится в стеке от предыдущих процедур.
     
Статус темы:
Закрыта.