Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ с++ версии выпусков где просмотреть https://www.cyberforum.ru/ cpp-beginners/ thread632667.html
у меня такое дело - хотел с 2010 студии перейти на с++ 6.0 но она виснет странным образом. есть что то поновее чем с++ 6 но без установки дап нет.
Симулятор собеседника? C++
Ребята, привет. Хочу задать вопрос. Я хочу сделать программу, в которой пишешь например: 1 - программа отвечает 2. Допустим. Вопрос: Как это сделать?.
C++ error C2228: left of '.add' must have class/struct/union type. в чем ошибка? https://www.cyberforum.ru/ cpp-beginners/ thread632657.html
Помогите понять в чем ошибка. Пасиб. #include <iostream.h> class book { private: char name_book; char name_avtor; int number;
C++ Как скрыть из командной строки мигающую черту? Как скрыть из командной строки мигающую черту? https://www.cyberforum.ru/ cpp-beginners/ thread632652.html
меню для Telnet C++
Доброго времени суток! Подскажите пожалуйста с такой вот проблемой: В прошивке написанной на си делаю что-то вроде интерфейса для Telnet. Чтоб при подключении к железке через Telnet ввести "s" а в ответ "Enter a command " вводишь набор символов и они записываются в буфер пока не нажмешь на ентер. Вот как я понял это, но чет нихрена не работает. Помогите пожалуйста //подключился к железке...
C++ Перегрузка new и delete https://www.cyberforum.ru/ cpp-beginners/ thread632599.html
Помогите пожалуйста разобраться! Непонимаю примера из Т.А. Павловская "C/C++ Программирование на языке высокого уровня" для большей ясности цитирую Перегрузка операции выделения памяти применяется для экономии памяти, повышения быстродействия программы или для размещения данных в некоторой конкретной области. Например, пусть описывается класс, содержащий указатель на некоторый объект: ...
C++ Сравнение int с элементом enum https://www.cyberforum.ru/ cpp-beginners/ thread632583.html
Доброго времени суток. У меня возник вопрос следующего содержания: Пишу прогу на Qt, в некоторой части программы необходимо произвести перебор по перечислению: enum SearchParameter { Id, Title, Author, Word,
C++ Определение конца строки
Могу ля как то определить, закончилась ли строка через символ \n? Он занимает одну позицию, или две?
C++ Удалить из строки все подстроки https://www.cyberforum.ru/ cpp-beginners/ thread632501.html
Помогите пожалуйста написать функцию удаляющую из строки s все подстроки s1 с испотльзованием <string> Добавлено через 1 минуту void mydelete(string s, string s1) { int r=0; int k=s.find(s1,r); int t=s1.size(); { while(k!=string::npos)
C++ Пределы Int https://www.cyberforum.ru/ cpp-beginners/ thread632459.html
Нужно найти такое максимальное n, чтобы Фиба не выходила за пределы int и вывести его. #include <iostream> using namespace std; int main() { unsigned int f1, f2, fnext, n; f1 = 0; f2 = 1;
Побороть LPCWSTR C++
Всем привет. Пишу программку на WinApi но столкнулся с простой проблемой. Мне нужно программно вставить текст в Edit. Код примерно такой: TCHAR FullPath = {0}; .......... SetWindowText( GetDlgItem( hwnd, IDC_EDIT1 ), FullPath ); Получаю такую ошибку: .......NNN.cpp(179): error C2664: SetWindowTextW: невозможно преобразовать параметр 2 из "const char " в "LPCWSTR" Типы, на...
C++ Вывод в Файл С++ Добрый день подскажите пожалуйста как вывести данные из программы в файл ексель и сделать чтоб он сохранялся а не каждый раз когда к нему обращалась программа он перезаписывался. Я знаю способ вывода в файл через ofstream но он перезаписывался каждый раз когда я делаю outFile.open() а мне надо сохранить данные. Ну и если не сложно хотелось не в txt а в екселе конечно. https://www.cyberforum.ru/ cpp-beginners/ thread632420.html
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 6
0

Динамическое изменение консольного окна, с избежанием появления полос прокрутки - C++ - Ответ 3326914

04.08.2012, 12:06. Показов 2948. Ответов 6
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, коллеги. Я нуждаюсь в помощи и совете.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <locale>
using namespace std;
 
const int WIDTH = 59;
const int HEIGHT = 37;
 
HANDLE handleConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursor00 = {100, true};
COORD curs00 = {0, 0};
COORD coord_buf01 = {59, 50};
COORD coord_buf02 = {100, 50};
COORD coord_buf03 = {-29, 50};
 
void gen_array(char g_array[HEIGHT][WIDTH]); 
void show_array(char sh_array[HEIGHT][WIDTH]);
void curs_array_gotoXY(int x, int y);
 
int main() {
  
  SMALL_RECT coord_rect_buf01 = {0, 0, 49, 58}; 
  SMALL_RECT coord_rect_buf02 = {0, 0, 49, 99};
  //SMALL_RECT coord_rect_buf03 = {0, 0, 49, -29};// test
  
    
  setlocale(LC_ALL, "Russian");
  SetConsoleTitle("**TEST**");
  SetConsoleCursorInfo(handleConsole, &cursor00); 
  
  
  
  system("mode con cols=59 lines=50");
  SetConsoleWindowInfo(handleConsole, true, &coord_rect_buf01);
  SetConsoleScreenBufferSize(handleConsole, coord_buf01);
  
  
  char array[HEIGHT][WIDTH];
  gen_array(array); 
  show_array(array);
   
  
  while(true){
  Sleep(2000);
  system("mode con cols=100 lines=50");  
  SetConsoleWindowInfo(handleConsole, true, &coord_rect_buf02);
  SetConsoleScreenBufferSize(handleConsole, coord_buf02);
  show_array(array);
  
  Sleep(1000);  
  system("mode con cols=59 lines=50");
  SetConsoleWindowInfo(handleConsole, true, &coord_rect_buf01);
  SetConsoleScreenBufferSize(handleConsole, coord_buf01);
  show_array(array);
  }
  
  //SetConsoleWindowInfo(handleConsole, true, &coord_rect_buf03); //test
  //SetConsoleScreenBufferSize(handleConsole, coord_buf03);
  
  
    
  
  cin.get();
  return 0;
}
 
 
void gen_array(char g_array[HEIGHT][WIDTH]) {
 
  int x, y;
  
  for(y = 0; y < HEIGHT; y++) {
    for(x = 0; x < WIDTH; x++) {
      g_array[y][x] = '0';
    }
  }
 
}
 
void show_array(char sh_array[HEIGHT][WIDTH]) {
    
  register int x;
  register int y;
  
  for(y = 0; y < HEIGHT; y++) {
    for(x = 0; x < WIDTH; x++) {
      cout << sh_array[y][x];
    }
    
    curs_array_gotoXY(0, y); 
  }
 
  
  
}
 
void curs_array_gotoXY(int x, int y) {
  COORD curs00 = {x, y};
  SetConsoleCursorPosition(handleConsole, curs00);
}
В данном виде код исправно функционирует, однако, в цикле while{} наблюдается мерцание отображенного массива, из-за того, что его приходится отрисовывать раз за разом. Не малую роль, на мой взгляд, играет функция system(), отвечающая за задание размеров окна.
Проблема в том, что:
1. Если через функцию system() задать большой размер окна, скажем 200х100, то при изменении буфера как в меньшую, так и в большую сторону ведет к возникновению полос прокрутки.
2. Если изначально задать размер окна меньше или равный нужному, при изменении размера буфера наблюдаются те же полосы.
3. Если однажды задать размер окна, а потом изменить с помощью system(), не добавляя функцию отрисовки массива, то после изменения его и не будет.
4. Если же использовать описанный выше код, наблюдается раздражающее мерцание.

Вопрос следующий:
Можно ли в процессе выполнения программы изменять размеры окна, избегая появления полос прокрутки и необходимости раз за разом отрисовывать массив?
И еще, там где установлен комментарий test, можно ли таким образом изменять буфер окна "влево"?

Добавлено через 17 часов 34 минуты
Ну хоть тапками покидайтесь, поругайтесь, что я чушь написал, а то непонятно же куда дальше плясать.

Вернуться к обсуждению:
Динамическое изменение консольного окна, с избежанием появления полос прокрутки C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2012, 12:06
Готовые ответы и решения:

Изменение масштаба при появлении полос прокрутки
Доброго времени! Меняется логотип и поля ввода по размеру при переходе по страницам сайта, т.к. на...

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

Изменение размеров консольного окна
Можно ли, как-нибудь изменить размеры консольного окна? Если можно, то как?

Изменение ширины окна консольного приложения
Доброго времени суток! Наткнулся на тему, но там как - то не особо описано.. Как же всё - таки...

6
04.08.2012, 12:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2012, 12:06
Помогаю со студенческими работами здесь

Как запретить изменение размеров консольного окна
Программа с подключенным &quot;crt&quot;(uses crt). Нужно запретить изменять размеры командной строки....

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

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

Синхронное перемещение полос прокрутки
На форме есть вертикальная и горизонтальная полосы прокрутки, требуется синхронность: если...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru