Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 4

Почему исчезает рисунок в консоли после прокрутки?

24.05.2017, 04:41. Показов 2874. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
// рассчитываю функцию и заполняю массивы x[N] и y[N]
...
//Рисование
POINT op;
HWND hWnd = GetConsoleWindow();
HDC hDC = GetDC(hWnd);
SelectObject(hDC, GetStockObject(WHITE_PEN));
for (i = 0; i < N-1; i++) {
    MoveToEx(hDC, x[i], y[i], &op);
    LineTo(hDC, x[i+1],y[i+1]);
}
ReleaseDC(hWnd, hDC);
При выполнении кода появляется консольное окно с ползунком прокрутки,
в окне появляется график функции, т.е. до этого места меня все устраивает, но ...
если после этого я сдвину ползунок вниз, то график сдвинется вверх
и частично (или полностью) уйдет за пределы консольного окна.

Так вот проблема в том, что если затем вернуть ползунок на исходное место график не восстанавливается.

Для сравнения: если вывести в консоль значения массивов функцией printf_s()
и подвигать ползунок вверх\вниз, то числа "уходят" за экран и потом возвращаются, а вот рисунок - нет.

Как будто рисунок не запоминается в каком-то видео-буфере.

Пожалуйста подскажите, что исправить чтоб рисунок тоже запоминался при необходимости?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2017, 04:41
Ответы с готовыми решениями:

Исчезает окно консоли после запуска
начал изучать язык си.Скачл книгу Кергана и Ритчи,поставил dev c++.при попытки написать hello world появляется окно на пару секунд и тут же...

На роутере исчезает интернет, после перезагрузки появляется и несколько минут работает, потом снова исчезает
в чем причина и как решить эту проблему? Может ли быть проблема со стороны интернет-провайдера или проблема в роутере?

Почему полосы прокрутки в ScrollPane начинают работать только после изменения размера окна?
Такой вопрос Почему полосы прокрутки в ScrollPane начинают работать только после изменения размера окна, а если поставить, чтоб размер...

7
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
24.05.2017, 05:03
не для того консоль предназначена
все вот это
Цитата Сообщение от rosevich Посмотреть сообщение
C
1
2
HWND hWnd = GetConsoleWindow();
HDC hDC = GetDC(hWnd);
это припарки, при таком подходе можно и на рабочем столе рисовать
используйте нормальное окно
0
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 4
24.05.2017, 05:10  [ТС]
э, новичок я в рисовании

не подскажете ли еще, где и что почитать кратенько, чтоб освоить азы рисования?

например, что это такое "нормальное окно"?
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
24.05.2017, 05:14
Цитата Сообщение от rosevich Посмотреть сообщение
например, что это такое "нормальное окно"
для начала, для какой ОС пишем?
Цитата Сообщение от rosevich Посмотреть сообщение
чтоб освоить азы рисования?
Азы это что?
вывод на экран это одно, привязаное к ОС
алгоритмы рисование это совершенно другое
0
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 4
24.05.2017, 05:29  [ТС]
ОС - Windows 7 (с текущими обновлениями, если это важно)

Добавлено через 9 минут
ах, да, азы.

Пусть это будет рисование графиков из массивов заранее просчитанных функций.
Без "наворотов" типа маркеров, легенд или хитроумных осей
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
24.05.2017, 05:51
Цитата Сообщение от rosevich Посмотреть сообщение
Как будто рисунок не запоминается в каком-то видео-буфере.
А там и нет никакого буфера, есть пользовательская процедура, которую ОС дергает со словами "перерисуй окно. Перерисуй его еще раз". В принципе конечно эту процедуру можно переопределить и для консоли. Только это потребует от вас такого уровня знаний, при котором вы подобной фигней заниматься вряд ли станете.
Цитата Сообщение от rosevich Посмотреть сообщение
Пусть это будет рисование графиков из массивов заранее просчитанных функций.
Без "наворотов" типа маркеров, легенд или хитроумных осей
Си-стайл - гуглить CreateWindow и дальше по ссылкам.
Объектно-ориентированное решение - учить Qt.
1
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 4
24.05.2017, 05:54  [ТС]
Спасибо! Буду читать.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
24.05.2017, 06:33
Цитата Сообщение от rosevich Посмотреть сообщение
ОС - Windows 7
тогда незабвенный Петцольд Ч. "Программирование для Windows 95"
сайт http://www.firststeps.ru все что относится к ВинАПИ, Visual C++
ветка здесь https://www.cyberforum.ru/win-api/
если заинтересует кроссплатформенное программирование то используй Qt
Макс Шлее "Qt 5.3. Профессиональное программирование на C++" можно "Qt 4.7. Профессиональное программирование на C++"
официальный сайт https://www.qt.io/ru/
ветка здесь https://www.cyberforum.ru/qt/
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2017, 06:33
Помогаю со студенческими работами здесь

Исчезает фоновый рисунок
После того как я поиграю в фифа 10 он исчезает

Рисование на форме. Исчезает рисунок
Привет всем, Вот мучаюсь с рисунком, все никак не получается, почему то рисунок исчезает как только я переключу окна или как только...

Исчезает фоновый рисунок экрана
Добрый день! Помогите, пожалуйста. Смысл неприятности вот в чем: После уничтожения вируса, перестал появляться фоновый рисунок, т.е....

Исчезает рисунок при прорисовке формы
Здравствуйте. Создаём на форме PictureBox с именем picMain и размерами 300x300. Создаём кнопку с именем btnPaint и размещаем в ней...

Исчезает фоновый рисунок рабочего стола
Каждый раз после включения ноутбука у меня исчезает фоновый рисунок на рабочем столе и становится белым экран, а панель задач автоматически...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru