Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ожидание запрос ввода через EditBox 
:(
    Опции темы
Kriks
Дата 12.8.2010, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.8.2010

Репутация: нет
Всего: нет



Всем доброго времени суток! Очень нужен совет по решению следующей проблемы. Имеется массив строк, память под который выделяется динамически, необходимо инициализировать данный массив через оконный интерфейс под MFC. Для консольной версии программы решение достаточно просто - создается цикл, на каждой итерации которого происходит запрос ввода определенной строки через gets() или scanf(), при этом каждая следующая итерация цикла не произойдет, до тех пор пока не будет инициализирована строка на предыдущей итерации. В MFC, где уже нет ни gets ни scanf, привязывая функцию цикла к определенной кнопке, по нажатию этой кнопки цикл пробегает все итерации сразу без ожидания запроса ввода строки на каждой итерации как это было в консольном варианте. И в лучшем случае через EditBox удается вбить только одну строку, которая инициализиреут строку на первой итерации цикла, все остальные итерации пройдут без запроса ввода.

Подскажите плиз, есть ли какой-то аналог gets или scanf для MFC, чтобы каждая итерация цикла происходила с ожиданием запроса ввода. Грубо говоря, чтобы при нажатии на кнопку, к которой привязана функция с циклом, она ожидала запроса ввода строки на каждой его итерации через EditBox. Спасибо! 
PM MAIL   Вверх
586
Дата 12.8.2010, 04:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 6
Всего: 146



Можно использовать многострочный Edit Control, и вводить в него строки, как в обычной программе "Блокнот".
PM   Вверх
Earnest
Дата 12.8.2010, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(Kriks @  12.8.2010,  03:47 Найти цитируемый пост)
Подскажите плиз, есть ли какой-то аналог gets или scanf для MFC, чтобы каждая итерация цикла происходила с ожиданием запроса ввода. Грубо говоря, чтобы при нажатии на кнопку, к которой привязана функция с циклом, она ожидала запроса ввода строки на каждой его итерации через EditBox.

Нет, готовой нет, но никто не мешает нарисовать: в своем наследнике Edit или в PreTranslateMessage родительского окна перехватываешь ENTER, считываешь содержимое EditBox и очищаешь его для приема след. информации. Или, если поле много строчное, считываешь последнюю строку и переводишь каретку (достаточно отдать управление самому контролу).
Но встает вопрос, если смысл симулировать консоль в оконном приложении?. Консоль работает именно так, потому что альтернативы нет, а в оконном-то приложении зачем это надо? Можно заранее набить все строки и ввести их все, можно таймер поставить, и пусть считывает по мере ввода, можно... да много чего можно, нужно только правильно поставить задачу. А оно неясна - построчный ввод не может быть самоцелью ведь.


--------------------
...
PM   Вверх
Kriks
Дата 13.8.2010, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.8.2010

Репутация: нет
Всего: нет



Народ, здравствуйте! Решил для заполнения массива строк отдельно открывать консоль в своем оконном приложении через AllocConsole(), а далее пользоваться функциями WriteConsole и ReadConsole. Но возникла новая проблема - WriteConsole принимает на вход и выводит только одну строку в отличие к примеру от printf, которая позволяет выводить сразу несколько строк наподобие: printf("%s %s", str, str2). Но если певрую проблему можно решить тем, что для вывода нескольких строк делать поочередно несколько вызовов WriteConsole, то вторая проблема состоит в том, что WriteConsole в конце строки делает переход на новую строку. 

Подскажите плиз, каким образом можно исключить переход на новую строку для WriteConsole или быть может есть аналогичные функции без перехода на новую строку и позволяющие выводить сразу несколько строк как это делает printf.  Спасибо! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.