Кто-нибудь может обьяснить что делает кусок кода поподробнее, по строчкам? class Screen {
HANDLE m_hStdout;
CONSOLE_CURSOR_INFO m_cursorInfo;
COORD m_screenSize;
DWORD m_screenBufSize;
DWORD m_consoleMode;
public:
Screen() {
m_hStdout = GetStdHandle(STD_ERROR_HANDLE);
GetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
m_cursorInfo.bVisible = FALSE;
SetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
CONSOLE_SCREEN_BUFFER_INFO csbi;
(m_hStdout, &csbi);
m_screenSize.X = csbi.srWindow.Right - csbi.srWindow.Left + 1;
m_screenSize.Y = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
m_screenBufSize = (DWORD)m_screenSize.X * m_screenSize.Y;
GetConsoleMode(m_hStdout, &m_consoleMode);
SetConsoleMode(m_hStdout, m_consoleMode | ENABLE_ECHO_INPUT);
}
~Screen() {
m_cursorInfo.bVisible = TRUE;
SetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
SetConsoleMode(m_hStdout, m_consoleMode);
}
COORD getScreenSize() const { return m_screenSize; }
void out(const COORD &coord, char ch) {
SetConsoleCursorPosition(m_hStdout, coord);
DWORD chars_written;
WriteConsoleA(m_hStdout, &ch, DWORD(1), &chars_written, NULL);
}
void out_array(const char *buf, DWORD buflen) {
DWORD chars_written;
COORD coord{ 0,0 };
SetConsoleCursorPosition(m_hStdout, coord);
WriteConsoleA(m_hStdout, buf, buflen, &chars_written, NULL);
}
void cls() {
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
(m_hStdout, &csbi);
DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
(m_hStdout, (TCHAR)' ', dwConSize, coordScreen, &cCharsWritten);
(m_hStdout, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(m_hStdout, coordScreen);
}
};
214
468
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
ника255226.10.2020 20:38
-
svetlana48502.04.2021 04:53
-
Viktoria2468020.06.2021 13:52
-
vladykasevera13.09.2021 22:01
-
Erkinbekulbosin13.12.2021 09:08
-
rasgramorysergio577510.07.2022 14:00
-
DashaKuhal13.06.2021 18:46
-
123у44424.03.2022 00:30
-
lera1021113.01.2023 11:23
-
SteeISeries15.04.2020 11:40
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.