Работа с консольным окном
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 05.06.17 09:41
Оценка:
Я в MFC-диалоге, в функции OnInitDIalog написал:

::AllocCOnsole();
freopen("CONIN$","rt",stdin); // для ввода
freopen("CONOUT$","wt",stdout); // для вывода
freopen("CONOUT$","wt",stderr); // для вывода сообщений об ошибках


Консольное окно открывается, оно работает--на нём вводятся и выводятся тексты. Но находится на заднем плане экрана, а на переднем плане находится диалоговое окно моей программы.
Можно ли программно переместить консольное окно с заднего плана на передний план и наоборот--можно ли программно переместить консольное окно с переднего плана на задний план?
И можно ли программно закрыть консольное окно (при завершении работы с программой)?

Если да, то как это можно сделать?
1613 г. = 2024 г.
Re: Работа с консольным окном
От: Nikita123 Россия  
Дата: 05.06.17 10:26
Оценка: +2 -1
Здравствуйте, RussianFellow, Вы писали:

RF>Я в MFC-диалоге, в функции OnInitDIalog написал:


RF>
RF>::AllocCOnsole();
RF>freopen("CONIN$","rt",stdin); // для ввода
RF>freopen("CONOUT$","wt",stdout); // для вывода
RF>freopen("CONOUT$","wt",stderr); // для вывода сообщений об ошибках
RF>


RF>Консольное окно открывается, оно работает--на нём вводятся и выводятся тексты. Но находится на заднем плане экрана, а на переднем плане находится диалоговое окно моей программы.

RF>Можно ли программно переместить консольное окно с заднего плана на передний план и наоборот--можно ли программно переместить консольное окно с переднего плана на задний план?
RF>И можно ли программно закрыть консольное окно (при завершении работы с программой)?

RF>Если да, то как это можно сделать?

Я вам уже писал: откажитесь от консольного окна и выводите данные в диалоговом окне.
Тогда исчезнут все проблемы с консольным окном.
Не пугайте пользователей своей программы этими черными окнами.
Желаю успеха,
Никита.
Re: Работа с консольным окном
От: AlexGin Беларусь  
Дата: 08.06.17 09:13
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Я в MFC-диалоге, в функции OnInitDIalog написал:


RF>
RF>::AllocCOnsole();
RF>freopen("CONIN$","rt",stdin); // для ввода
RF>freopen("CONOUT$","wt",stdout); // для вывода
RF>freopen("CONOUT$","wt",stderr); // для вывода сообщений об ошибках
RF>


1) Консольное окно НЕ НУЖНО — от слова совсем!!!
2) Зачем вообще путать код работы с файлами, в данном случае вызов freopen с функционалом GUI (ставить его в OnInitDIalog)?
Если есть необходимость работы с файлами — не следует её 'запихивать' в диалоговое окно, правильнее её сделать в наследнике от CWinApp.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.