Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 11.10.2017, 09:45   #1
erslgoeirjh
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 44
Репутация: 10
По умолчанию Вопросы по консольному окну в диалоговом MFC-приложении

В моей программе, помимо главного диалогового окна, используется также консольное окно, в котором происходит ввод-вывод информации.
Это консольное окно у меня инициализировано следующим образом:

в функции CInitDlg::OnInitDialog :

::AllocConsole();
freopen("CONIN$","rt",stdin);
freopen("CONOUT$","wt",stdout);
freopen("CONOUT$","wt",stderr);


деинициализация консольного окна происходит у меня в функции CInitDlg::OnBnClickedCancel :

fclose(stdout);
fclose(stderr);
fclose(stdin);
::FreeConsole();


В связи с этим у меня два вопроса:
1) Можно ли в программе в зависимости от условия сделать так, чтобы это окно то выскакивало на передний план экрана, то удалялось на задний план?
2) Можно ли программно задать буфер этого консольного окна по вертикали, то есть чтобы вместо 80 строк в этом окне было бы, скажем, 3000 строк?

Если можно, то как это сделать?
erslgoeirjh вне форума   Ответить с цитированием
Старый 11.10.2017, 09:54   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,903
Репутация: 2903

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

А для чего оно? Может лучше сделать свое консольное окно?
Alex11223 на форуме   Ответить с цитированием
Старый 11.10.2017, 10:18   #3
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,177
Репутация: 1578
По умолчанию

GetConsoleWindow() даст вам HWND окна.
SetConsoleScreenBufferSize() укажет размер буфера.
waleri вне форума   Ответить с цитированием
Старый 16.10.2017, 13:01   #4
erslgoeirjh
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 44
Репутация: 10
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
GetConsoleWindow() даст вам HWND окна.
SetConsoleScreenBufferSize() укажет размер буфера.
С функцией GetConsoleWindow я разобрался--я добавил следующий код после инициализации консольного окна:

Код:

HANDLE  hStdout;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO  csbiInfo;
GetConsoleScreen BufferInfo(hStdout,&csbiInfo);
COORD  dwSize = csbiIndo.dwSize;
dwSize.Y = 9999;
SetConsoleScreenBufferSize(hStdout,dwSize);

А как быть с помещением консольного окна на передний план и на задний план, зная его HWND ? Какие функции при этом надо использовать?
erslgoeirjh вне форума   Ответить с цитированием
Старый 16.10.2017, 15:45   #5
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,177
Репутация: 1578
По умолчанию

SetForegroundWindow()
SetWindowPos()
waleri вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по MFC: step by step prygun_evg Visual C++ 1 20.08.2012 15:19
Отправка команды стороннему консольному приложению xxx-z-xxx C# (си шарп) 5 16.02.2012 18:23
"Немое" окно в приложении на MFC Tihon Win Api 0 31.05.2011 11:11
Combobox на Диалоговом листе GennOk Microsoft Office Excel 17 30.01.2010 20:16
Проблема немодального диалога в многопоточном приложении (Visual С++ 6 MFC Win32) Kernel_BuG Помощь студентам 1 26.09.2008 09:59




16:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru