В моей программе, помимо главного диалогового окна, используется также консольное окно, в котором происходит ввод-вывод информации.
Это консольное окно у меня инициализировано следующим образом:
В связи с этим у меня два вопроса:
1) Можно ли в программе в зависимости от условия сделать так, чтобы это окно то выскакивало на передний план экрана, то удалялось на задний план?
2) Можно ли программно задать буфер этого консольного окна по вертикали, то есть чтобы вместо 80 строк в этом окне было бы, скажем, 3000 строк?
Здравствуйте, RussianFellow, Вы писали:
RF>В моей программе, помимо главного диалогового окна, используется также консольное окно, в котором происходит ввод-вывод информации. RF>Это консольное окно у меня инициализировано следующим образом...
Зачем нужно делать консольный ввод/вывод, если есть диалоговое окно
Просто добавить соотвтетствуюшие контролы (элементы управления) в диалоговое окно — и вперёд
Здравствуйте, RussianFellow, Вы писали: RF>В моей программе, помимо главного диалогового окна, используется также консольное окно, в котором происходит ввод-вывод информации. RF>Это консольное окно у меня инициализировано следующим образом: RF>деинициализация консольного окна происходит у меня в функции CInitDlg::OnBnClickedCancel : RF>В связи с этим у меня два вопроса: RF>1) Можно ли в программе в зависимости от условия сделать так, чтобы это окно то выскакивало на передний план экрана, то удалялось на задний план? RF>2) Можно ли программно задать буфер этого консольного окна по вертикали, то есть чтобы вместо 80 строк в этом окне было бы, скажем, 3000 строк? RF>Если можно, то как это сделать?
Что-то у вас каждые три месяца возникают одни и те же вопросы. Это как-то странно...
Почитайте наконец-то MSDN по теме консольных окон.
Или лучше уберите консольное окно и вводите и выводите данные в диалоговом окне.
Так делают все нормальные разарботчики.
Здравствуйте, Nikita123, Вы писали:
N>Или лучше уберите консольное окно и вводите и выводите данные в диалоговом окне. N>Так делают все нормальные разарботчики.
Кто такие эти нормальные разработчики? Они уже запили нормальные консольные окна с не меньшей функциональностью как во вкладке Свойства/Options? Чтобы можно было самому и размер, и шрифт, и цвет, и 100500 параметров менять?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали: N>>Или лучше уберите консольное окно и вводите и выводите данные в диалоговом окне. N>>Так делают все нормальные разарботчики. V>Кто такие эти нормальные разработчики? Они уже запили нормальные консольные окна с не меньшей функциональностью как во вкладке Свойства/Options? Чтобы можно было самому и размер, и шрифт, и цвет, и 100500 параметров менять?
Не нужны никакие "нормальные консольные окна с не меньшей функциональностью". У топик-стартера из диалогового окна открывается консольное окно для вывода данных. Это просто дичь какая-то.
Здравствуйте, Nikita123, Вы писали:
N>>>Так делают все нормальные разарботчики. V>>Кто такие эти нормальные разработчики? Они уже запили нормальные консольные окна с не меньшей функциональностью как во вкладке Свойства/Options? Чтобы можно было самому и размер, и шрифт, и цвет, и 100500 параметров менять? N>Не нужны никакие "нормальные консольные окна с не меньшей функциональностью". У топик-стартера из диалогового окна открывается консольное окно для вывода данных. Это просто дичь какая-то.
Почему дичь? В каком месте дичь? Если изначально гуёвое приложение, к примеру, MFC, то его просто так на консольное не переключить. А если только на раз окно нужно? К примеру, для отладки или ещё чего? Вообщем, ваша дичь не аргументирована.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали: N>>>>Так делают все нормальные разарботчики. V>>>Кто такие эти нормальные разработчики? Они уже запили нормальные консольные окна с не меньшей функциональностью как во вкладке Свойства/Options? Чтобы можно было самому и размер, и шрифт, и цвет, и 100500 параметров менять? N>>Не нужны никакие "нормальные консольные окна с не меньшей функциональностью". У топик-стартера из диалогового окна открывается консольное окно для вывода данных. Это просто дичь какая-то. V>Почему дичь? В каком месте дичь? Если изначально гуёвое приложение, к примеру, MFC, то его просто так на консольное не переключить. А если только на раз окно нужно? К примеру, для отладки или ещё чего? Вообщем, ваша дичь не аргументирована.
Я ничего не понял из вашего сообщения. Зачем MFC-приложение переключать на консольное? И зачем консольное окно для отладки? Для отладки есть отладчик в Visual Studio. Если очень нужно, то можно записывать отладочные сообщения в текстовый log-файл или в окно отладчика функцией OutputDebugString() или в окна сообщений функцией MessageBox() или AfxMessageBox(). Выводить данные в консольное окно в MFC-приложении — это и есть просто дичь. Для вывода данных в MFC-приложении используются окна, которые наследуются от класса CWnd. Консольное окно в MFC-приложении не нужно совсем.
Здравствуйте, Nikita123, Вы писали:
N>Я ничего не понял из вашего сообщения. Зачем MFC-приложение переключать на консольное? И зачем консольное окно для отладки? Для отладки есть отладчик в Visual Studio. Если очень нужно, то можно записывать отладочные сообщения в текстовый log-файл или в окно отладчика функцией OutputDebugString() или в окна сообщений функцией MessageBox() или AfxMessageBox(). Выводить данные в консольное окно в MFC-приложении — это и есть просто дичь. Для вывода данных в MFC-приложении используются окна, которые наследуются от класса CWnd. Консольное окно в MFC-приложении не нужно совсем.
Не соглашусь, это удобно (и быстро запрограммировать), когда нужно вывести какую то отладочную информацию в реальном времени. Ещё и разными цветами можно писать.
Не всем и не все удобно в отладчике смотреть и файлы разбирать.
Здравствуйте, RussianFellow, Вы писали:
RF>2) Можно ли программно задать буфер этого консольного окна по вертикали, то есть чтобы вместо 80 строк в этом окне было бы, скажем, 3000 строк?
RF>Если можно, то как это сделать?
Здравствуйте, Nikita123, Вы писали:
V>>Почему дичь? В каком месте дичь? Если изначально гуёвое приложение, к примеру, MFC, то его просто так на консольное не переключить. А если только на раз окно нужно? К примеру, для отладки или ещё чего? Вообщем, ваша дичь не аргументирована. N>Я ничего не понял из вашего сообщения. Зачем MFC-приложение переключать на консольное?
К примеру, чтобы консольное окно открывалось системой. Чтобы можно было делать перенаправление ввода-вывода без изменения кода.
N>И зачем консольное окно для отладки? Для отладки есть отладчик в Visual Studio.
Отладка это термин такой, не подразумевающий только подключение отладчика.
N>Если очень нужно, то можно записывать отладочные сообщения в текстовый log-файл или в окно отладчика функцией OutputDebugString() или в окна сообщений функцией MessageBox() или AfxMessageBox().
Это все полу/недо средства. Вывод в файл требует бОльших телодвижений, чем просто включить консольное окно. Самое базовое и простое средство отладки это вывод в консольное окно с помощью обычных принтов.
N>Для вывода данных в MFC-приложении используются окна, которые наследуются от класса CWnd. Консольное окно в MFC-приложении не нужно совсем.
Вывод не верный. Какая разница какое приложение? Консольное окно и вывод в него поддерживаются обычными функциями printf из любого места в программе. А вот дичь это городить отдельную инфраструктуру на GUI-шных окнах, вместо того чтобы воспользоваться встроенной и проверенной.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Михaил, Вы писали:
М>Не соглашусь, это удобно (и быстро запрограммировать), когда нужно вывести какую то отладочную информацию в реальном времени. Ещё и разными цветами можно писать. М>Не всем и не все удобно в отладчике смотреть и файлы разбирать.
А еще консоль может быть чужим приложением, и попросту переписать его нельзя. Соответственно и нужно то: запустить эту чужую консоль из своего GUI, и как-то забрать ее вывод. У меня как-то была такая задача, да так руки и не дошли толком разобраться с консолями.