Общие моменты создания консольного интерфейса

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

  1. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    Интересует каким образом создаётся интерфейс со всякими списками и менюшками в консольном приложении.
    Нужно бегать кареткой(SetConsoleCursorPosition) и писать(WriteConsoleInput) псевдо графику с текстом?
    Или есть какой-нибудь метод объединять консольные буферы? т.е. писать элементы интерфейса в другой буфер а потом его *накладывать*.
    Или ещё какой хак?

    ---------------------
    кажеться нашёл куда копать, WriteConsoleOutput, WriteConsoleOutputAttribute и WriteConsoleOutputCharacter.
    Но всё же не откажусь от небольших разъяснений или примеров, ссылок.
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    and замени на sub!
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Нужно просто посмотреть список сервисов консольной подсистемы, не весь функционал экспортируется. Возможно найдётся чтолибо интересное.
     
  4. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    как раз таки кареткой и бегают, должен вас разочаровать.

    в терминальном режиме - тоже свои приколы.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    FAR - OpenSource
     
  6. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    vover, хоть пиши сюда экземплы свои, когда сам напишешь?
    ) чтоб мне лишние топики не заводить
     
  7. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    n0name, гляну.
    Semiono, когда разберусь выложу.
     
  8. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    а почему не так
    Код (Text):
    1. update:
    2. pusha
    3. push STD_OUTPUT_HANDLE
    4. call [GetStdHandle]
    5. mov ebx, eax
    6. push .csbi
    7. push eax
    8. call [GetConsoleScreenBuuferInfo]
    9. push .zerocp
    10. push ebx
    11. call [SetConsoleCursorPosition]
    12. push 0
    13. push esp
    14. push 80*25*2
    15. push .screen
    16. push ebx
    17. call [WriteFile]
    18. push .csbi+4
    19. push ebx
    20. call [SetConsoleCursorPosition]
    21. popa
    22. ret
    23. .screen dw 80*25 dup 0
    24. .zerocp dd 0
    25. .csbi     db 32 dup 0
    и работайте с .screen как с экраном под дос, вот только синхронизации ждать не надо. call update и все