Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

Узнать размер консоли - C++

13.11.2011, 22:52. Просмотров 3829. Ответов 6
Метки нет (Все метки)

Как узнать размер консольного окна, куда программа выводит данные?

Сколько символов "влазит" по вертикали и горизонтали.

Добавлено через 35 минут
с помощью winapi
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 22:52     Узнать размер консоли
Посмотрите здесь:

Размер шрифта в консоли - C++
Как програмно настроить размер шрифта wxDev-C++

Размер консоли в Code::Blocks - C++
Не знаю что за прикол, но когда компилирую программу то окно консоли которое выскакивает нереально маленькое, причем размер его изменить...

Как изменить размер текста в консоли - C++
Как изменить размер текста в консоли (например, какую использовать системную команду, аналог system("color 00") для изменения...

Как изменить размер цифр,букв в консоли С++ - C++
Здравствуйте,как изменить размер цифр,букв в консоли С++? Нужно цифры от 1 до 15 сделать большими,например как шрифт 23,24 в ворде....

Количество выводимых строк в консоли (размер буфера экрана) - C++
Такая проблема - по умолчанию в Windows размер "буфера экрана" для консоли - 300 строк. Я вывожу гораздо больше (около 1200 строк)...

Как программно в консоли установить точечный шрифт, и его размер? - C++
Как программно в консоли установить точечный шрифт, и его размер? Формулируйте вопрос в посте.

Узнать какой отображён символ в консоли по координатам - C++
Здравствуйте, допустим программа выводит какие-то символы на экран консоли. Есть ли такой способ программно узнать (наверно это...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
5942 / 3379 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
13.11.2011, 23:34     Узнать размер консоли #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <Windows.h>
 
int main()
{
    HANDLE hWndConsole;
    if (hWndConsole = GetStdHandle(-12))
    {
        CONSOLE_SCREEN_BUFFER_INFO consoleInfo;
        if (GetConsoleScreenBufferInfo(hWndConsole, &consoleInfo))
        {
            int widht = consoleInfo.srWindow.Right - consoleInfo.srWindow.Left + 1;
            int height = consoleInfo.srWindow.Bottom - consoleInfo.srWindow.Top + 1;
            printf("Widht: %d\n", widht);
            printf("Height: %d\n", height);
        }
        else
            printf("Error: %d\n", GetLastError());
    }
    else
        printf("Error: %d\n", GetLastError());
    getchar();
    return EXIT_SUCCESS;
}
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
14.02.2015, 14:01     Узнать размер консоли #3
а если убрать проверку, это не "смертельно"?
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
#include <stdio.h>
#include <Windows.h>
 
HANDLE hCon =  GetStdHandle( STD_OUTPUT_HANDLE );
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
void GetBufferChars(COORD *Chars)// 4TO5bI y3HATb PA3MEP 5yFEPA CUMBO7OB
{   GetConsoleScreenBufferInfo(hCon, &csbInfo);
    Chars->X = csbInfo.srWindow.Right - csbInfo.srWindow.Left + 1;
    Chars->Y = csbInfo.srWindow.Bottom - csbInfo.srWindow.Top + 1;
    //printf(" Y=%i X=%i",Chars->Y,Chars->X );  
}
int main()
{getchar();
    COORD Chars;    
    GetBufferChars(&Chars);
    
    int widht = Chars.X;
    int height = Chars.Y;
    printf("Widht: %d\n", widht);
    printf("Height: %d\n", height);
 
    getchar();
    return EXIT_SUCCESS;
}
zss
Модератор
Эксперт С++
6282 / 5885 / 1905
Регистрация: 18.12.2011
Сообщений: 15,094
Завершенные тесты: 1
14.02.2015, 14:22     Узнать размер консоли #4
C++
1
2
3
4
5
   HWND hWnd = GetConsoleWindow();
   RECT rc;
   GetClientRect(hWnd,&rc);
   int w=rc.right; // ширина рабочей области
   int h=rc.bottom;// высота рабочей области
По моему, так проще!
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
14.02.2015, 14:42     Узнать размер консоли #5
у меня почему-то не получается запустить. Говорит компилятор:
`GetConsoleWindow' undeclared (first use this function)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <windows.h>
 
int main()
{getchar();
 
    HWND hWnd = GetConsoleWindow();
    RECT rc;
    GetClientRect(hWnd,&rc);
    int w=rc.right; // ширина рабочей области
    int h=rc.bottom;// высота рабочей области
 
    printf("Widht: %d\n", w);
    printf("Height: %d\n", h);
 
    getchar();
    return 0;
}
и с большой пробовал
C++
1
#include <Windows.h>
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
14.02.2015, 14:46     Узнать размер консоли #6
Идем в документацию, смотрим.
To compile an application that uses this function, define _WIN32_WINNT as 0x0500 or later. For more information, see Using the Windows Headers.
Кликните здесь для просмотра всего текста
Перед заголовком
C++
1
#define _WIN32_WINNT 0x0500
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2015, 21:59     Узнать размер консоли
Еще ссылки по теме:

Узнать размер массива - C++
есть 2 указателя на первый элемент массива и указатель на элемент после последнего можно ли как-то узнать размер этого массива не...

Узнать размер файла - C++
Мне нужно прочитать обычный текстовый файл. Я думаю это сделать с помощью одной из функций семейства get(). Для этого (и не только) мне...

Узнать размер файла - C++
Дорогие форумчане! Есть у меня есть файл xxxxx.clk(все данные в нем строчные), он весит n-ое количество мегабайт. Нужно задать массив...

Как узнать размер массива? - C++
Нужно узнать размер введенного пользователем массива, но sizeof() почему-то не работает, помогите пожалуйста разобраться! int...

Не выходит узнать размер файла - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; void main() { std::ifstream input; long int size_of_file; ...


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

Или воспользуйтесь поиском по форуму:
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
14.02.2015, 21:59     Узнать размер консоли #7
Но он показывает сколько пикселей, а не сколько символов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#define _WIN32_WINNT 0x0500 // 4TO5bI MEHRTb KOOPDUHATbI PAMKU, HyJHO nPOnUCATb nEPED #include <windows.h>
#include <Windows.h>
int main()
{getchar();
    HWND hWnd=GetConsoleWindow();
    RECT rc;
    GetClientRect(hWnd, &rc);
    printf(" Y=%i X=%i",rc.right,rc.bottom);
    getchar();
    return EXIT_SUCCESS;
}
Yandex
Объявления
14.02.2015, 21:59     Узнать размер консоли
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru