О MessageBox

Тема в разделе "WASM.BEGINNERS", создана пользователем WWWorm, 13 окт 2009.

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

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    Данн стиль messagebox с двумя кнопками "да" и "нет", вопрос: как в коде обозначаются эти кнопки и можно ли поменять название самих кнопок, например "OK" на "хорошо" ?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm
    Использовать SoftModalMessageBox -- смотри пример здесь либо сделать хук -- пример в аттаче
     
  3. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    а кнопка "да" в коде обозначается как "IDYES" или нет, если я прав, то "нет" обозначается как "IDNO" или я ошибаюсь
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm Зависит от языковых настроек, если русския язык, то
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm
    А это идентификатор того, какую кнопку нажал юзер
     
  6. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Mikl___
    не, ТС спрашивает про возврат функции
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    FatMoon
    Не думаю, что ему нужно то что в аттаче (сорц и ехе), по-моему то что ответил в #2 -- подменить названия стандартных клавиш на произвольные
     
  8. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    жаль, что синтаксис не фасма, если сможете напишите на фасме, ну или я попробую перевести на синтаксис fasm
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm
    "Сама, сама, сама..." (© "Вокзал для двоих") ;)
     
  10. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    Mikl___
    а что значит эти операции в регистре eax
    push Msg[eax*4-24]
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm
    Если нажал на клавишу "Да" eax=IDYES=6 иначе eax=IDNO=7 в Msg адреса сообщений
    Msg+6*4-24=Msg+0=Msgy
    Msg+7*4-24=Msg+4=Msgn так мы избежали сравнений и переходов
     
  12. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    прикольно! а всегда нажатия в виндовс прогах фиксируется в eax?
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    ))))) результат выполнения функции фиксируется в eax...
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    WWWorm
    Да, а результат я отправил в #5 а FatMoon в #6
     
  15. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    WWWorm
    Как совместно согласились гуру, тебе не нужно то, что в первом аттаче. Поживи некоторое время с мыслью, что кнопки в МессажБоксе только те, какие возможны через указанные стили. То есть никаких "хорошо" или "лады" или "ахтунг" - это не для BEGINNERS развлечение. Почитай про диалоги. Легче понять, как вывести диалог с кнопкой, чем подменить в стандартном мессажбоксе надпись...

    это изящный способ вывести либо одну, либо другую надпись.
    Msg[0] - содержит адрес сообщения для случая "да"
    Msg[4] - содержит адрес сообщения для случая "нет"
    После выполнения мессажбокса eax=6 (yes) или eax=7 (no)
    Адреса у нас дворды, т.е. 4 байта. Поэтому *4... 6*4 = 24. Когда будет нажато "да", получим Msg[0]. Когда "нет" - Msg[4]. В результате никакого условия, сравнения, проверки - адрес нужного текста вычисляется.
     
  16. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    спасибо вам FatMoon и Mikl___
    еще вопрос: подскажите мне функцию invoke каторая вырисовывала окошко типа как идет процесс копирования или удаления, главное чтоб палоска двигалась
     
  17. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    :) это называется Progress_bar, в аттаче несколько разных образцов ехе и сорц на FASM'e
     
  18. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    :) буду знать
     
  19. WWWorm

    WWWorm New Member

    Публикаций:
    0
    Регистрация:
    8 окт 2009
    Сообщения:
    22
    У меня что то не получается ни ..., напишити пожалуйста вот что: данн стиль messagebox c двумя кнопка, если нажимаешь да , то должен выйти один из видов Progress bar(а можно без кнопки отмена), плиз!
    синтаксис Fasm'а.
     
  20. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    Суть такова: можно играть погроммистом, и если нажимаешь да, то должен выйти один из видов ProgressBar, или новичком - тогда набигают гуру и советуют непонятные вещи.

    WWWorm
    З.Ы.
    Тебе дали несколько примеров, учись читать, родной :3
    И да, учи русский язык.
     
Статус темы:
Закрыта.