как определить сообщение wm_LButtonDown?

Тема в разделе "WASM.BEGINNERS", создана пользователем Djavol, 24 апр 2007.

  1. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    Только-только сделал свое первое окно на TASM 5.0. пока оно ничего не может, даже кнопка "закрыть" неактивна... но суть не в этом.
    я скачал несколько примеров по созданию окна, включая уроки Iczeliona и нашел следующие отличия:
    в моем import32.inc wm_LButtonDown определяется как 01h
    в скаченном из инета (к сожалению сайт не помню) примере wm_LButtonDown определяется как 201h, подскажите как программе узнать что была нажата именно левая кнопка и где ее нажали.
    Заранее спасибо!
     
  2. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    \masm32\include\windows.inc
    WM_LBUTTONDOWN equ 201h
    01h - неправильное определение..
    !!!
    WM_CREATE equ 1h
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Если окно не закрыто по нажатии [Х] - не вызвана функция DefWindowProc() в твоей процедуре окна. Код WM_LBUTTONDOWN=201h, так что пользуй скачанный импорт файл - твой почему-то неверен.
    Код (Text):
    1. mov eax, msgID
    2. cmp eax, WM_LBUTTONDOWN
    3. je   OnLBtnDown
    4. ...
    5.  
    6. OnLBtnDown:
    7. mov eax, LParam
    8. mov edx, eax
    9. shr eax, 16
    10. and edx, 0000FFFFh
    11. ;
    12. ; Now EDX = X coordinate of the cursor
    13. ; and EAX = Y coordinate of the cursor
     
  4. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    а разве у тасма и масма одинаковые .inc файлы?
     
  5. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    нашел windows.inc, нашел там все, что нужно.
    А если я в TASM'е буду подключать этот файл мне надо будет указать те же имены структур и констант, что в этом файле?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Djavol
    equ и STRUC одинаково поддерживаются масмом и тасмом. А если включить в тасме режим совместимости с мамсом, то и весь исходник теоретически можно сделать "совместимым" с обоими компиляторами.
     
  7. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    а какими ключами это сделать?
     
  8. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    И еще 1 маленький вопросец: что означает событие (если это событие) WM_MOUSELAST?
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    /jmasm51 /jquirks
    В принципе, и без этого можно писать код, совместимый с масмом и тасмом. См. TSM_HELP.TXT для более подробной информации.
     
  10. Djavol

    Djavol New Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    9
    Спасибо за информацию, без вас я бы еще долго не понял бы почему программа не реагирует на кнопки мыши :)
    Тему можно считать закрытой
     
  11. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Код (Text):
    1. aaa struc;В TASM
    2. ...
    3. ends
    4. aaa struct;в MASM
    5. ...
    6. aaa ends
    и, как правило, в TASM не включают различие строчных/прописных
    и есть различия между TASM windows32.inc и MASM windows.inc
     
  12. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    struc и в масме есть для совместимости со старыми версиями наверное, также как и length, size, type, которые и там и там.
     
  13. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Есть MOUSE_FIRST и MOUSE_LAST. В принципе - это не события. Они используются дла фильтрации событий от мыши в таких функциях как: PeekMessage()/GetMessage(). Все события приходящие от мыши находятся между этими двумя значениями.