Попросили сделать на ассемблере (MASM) что-то типа окна InputBox, которое было когда-то в Visual Basic 6.0. Кстати да, удобная фича для мелких запросов к юзеру, без всякого лишнего моделирования форм. Выглядело примерно так:
![](https://i.imgur.com/aS61m8A.gif)
Да, товарищи (даже те, которые нам совсем не товарищи), это окошко чистая выдумка создателей VB, и в диком виде подобная функция нигде более не встречается.
Т.е. в WinAPI ее нет и не ищите!
Но реализовать можно:
![](https://github.com/tolik-punkoff/assembler-examples/blob/main/inputbox-demo/screens/01-inputbox-demo.png?raw=true)
![](https://github.com/tolik-punkoff/assembler-examples/blob/main/inputbox-demo/screens/02-inputbox-user-no-enter-string.png?raw=true)
![](https://github.com/tolik-punkoff/assembler-examples/blob/main/inputbox-demo/screens/03-inputbox-user-enter-string.png?raw=true)
![](https://github.com/tolik-punkoff/assembler-examples/blob/main/inputbox-demo/screens/04-inputbox-complete.png?raw=true)
Сама функция InputBox
перенесена любовно в InputBox.inc
, так что можно просто воткнуть и использовать. Сделано изначально было все примерно по тем же материалам Iczelion’а (копия), я лишь немного причесал и по полочкам разложил, особо ничего не меняя. Потому расписывать детально не буду. Суть можно понять из вышеозначенных материалов и комментариев, хоть и на буржуйском, в исходниках.
Мопед изначально не мой, но ездит. Нашел на Stackoverflow, слегка переделал.
Исходник на GitHub
Скомпилированная версия