Лабораторная работа: Организация интерфейса пользователя

Стандартные средства Си для ввода данных (функция scanf) предоставляют пользователю очень мало возможностей. Редактирование вводимого текста возможно только путем удаления символов с конца строки, начальное значение установить нельзя (по умолчанию вводится пустая строка), прокрутки строки, если она не влазит в окно, не предусмотрено (точнее, строка просто переносится по границе окна, что не всегда желательно).

В связи с этим очень часто возникает необходимость в разработке своих средств ввода текста, которые обеспечили бы удобный и привычный пользовательский интерфейс. При этом достаточно организовать ввод текстовой строки, а ввод чисел и более сложных значений (например, интервалов) организуется на основе текстового ввода с последующей обработкой введенной строки (например, чтением числа с помощью функции strtol).

Рассмотрим следующую функцию ввода текста с редактированием:

int inputstr(char* str,int maxlen)

{

int x=wherex(),y=wherey(),curlen=strlen(str);

int pos=curlen;

char firstkey=1;

highvideo();

cprintf("%-*s",maxlen,str);

lowvideo();

gotoxy(x+pos,y);

_setcursortype(_NORMALCURSOR);

int exitcode=-1;

while (exitcode<0)

{

int key=getch();

switch (key)

{

case 0:

key=getch();

switch (key)

{

case LEFT:

if (pos>0)

--pos;

break;

case RIGHT:

if (pos<curlen)

К-во Просмотров: 397
Бесплатно скачать Лабораторная работа: Организация интерфейса пользователя