Доброе время суток! У меня такой вопрос: пусть у меня есть программа на С++ (версия ТурбоС 3.0), которая работает в текстовом режиме и выводит все сообщения на экран через потоки (cout, cerr), можно ли написать новый класс для потока, чтобы он работал так как мне нужно, а именно, я хочу переписать данную программу под графический режим (для начала 13h) и выводить все символы, используя свою таблицу символов. Если это возможно, то что мне нужно изменить в новом классе, и будет ли все работать, если я в начале программы присвою потоку cout этот новый класс?
Здравствуйте, Mykola! Тебе, пожалуй, нужно не изменить класс, а написать новый! И простое присваивание работать не будет, даже если ты свой класс унаследуешь от cout... Потому что cout - это не указатель, а объект, присвоить что-то которому ничего нельзя... В принципе, можно унаследовать этот новый класс от того же ostream, но я бы лучше написал свой собственный заново просто потому, что в ostream много всяких ненужных функций, которые придется перегружать... В принципе, это очень даже возможно. Только учти, что тогда у тебя все равно получится что-то вроде консоли с одним шрифтом... потому что, выводя в поток, ты выводишь в какую-то заранее определенную позицию (курсора!). А так, как графический режим предлагает больше возможностей, чем просто вывод текста, то было бы лучше просто использовать стандартную библиотеку Graph и тот же
OutTextXY() или еще что-то. Можешь и свой класс написать... Я так понял, что ты хочешь просто портировать прогу из текстового режима в графический с минимальными затратами времени? Тогда я тебя огорчу - быстро и хорошо ты это не сделаешь. :( Вернее, быстро можно, но не так, как ты хочешь. Используй Graph.
Ответ отправлен: 05.01.2003, 23:58 Отправитель: baldr Отвечает Jadd
Доброе время суток, Mykola! Просвети меня. Как изменение режима видеоадаптера влияет на ввод-вывод в потоки? Ответ отправлен: 05.01.2003, 01:53 Отправитель: Jadd
Вопрос № 491
(хоть и довольно поздно.. но)С новым годом!!! и вопрос... В "приложении" исходник программы (если сие чудо можно так назвать) написаной на Борланд С++ 3.1... (не судите строго... это не программа а просто, так стказать, тренировка (функция ЭниВиндоу вообще еще не работает))... написав вот это я понял, что так далише дело не пойдет... дело в том, что подобный подход позволяет "рисовать" в текстовом режиме, но имеет один ужасный недостаток -- я не могу избавится от постоянного присутствия курсора на экране... От сюда вопрос... Не подскажите ли вы, как на Борланд С++ 3.1 нарисовать то же самое но без курсора... В смысле может быть есть какие-то другие аналогичные функции позволяющие рисовать без присутствия курсора на экране, или какой ни будь другой вариант??? Заранее большое спасибо и еще раз всех вас с новым годом и рождеством! PS.
Вы случайно не знаете где можно достать таблицу скэнкодов клавиш клавиатуры??? и опять с новым годом!
Доброе время суток, CrazyIronToiletPaper! На здоровье!
Приложение: Ответ отправлен: 05.01.2003, 23:56 Отправитель: baldr Отвечает barsik_
Здравствуйте, CrazyIronToiletPaper! Sprach cursor s pomoschu prerivaniy dos, i rabotay pramo s pamatyu Ответ отправлен: 05.01.2003, 16:21 Отправитель: barsik_ Отвечает Jadd
Добрый день, CrazyIronToiletPaper Насчет рисования. ИМХО, я уже писал какие книги надо прочитать поп рогразму графики для доси на сях. Читай. Там все есть. Скен-коды: не знаю. Но самому можно написать прогу, которая определяет. Кстати, в той же книге есть и это. Ответ отправлен: 05.01.2003, 01:39 Отправитель: Jadd
Вопрос № 492
Как сделать снимок экрана(или его часть) и поместить его в Image1. keybd_event не годится. C++ Builder Всем спасибо!
Доброе время суток, Fuhrer! На WinAPI это реализуется так: GetDesktopWindow->GetDC->BitBlt Ответ отправлен: 08.01.2003, 10:56 Отправитель: Gibbel
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.