-
- Случайно забежавший
- Сообщения: 4
- Зарегистрирован: Вт июн 21, 2005 1:14
- Откуда: Украина, г.Харьков
- Контактная информация:

Привет ребята!
Я забрел на форум через поисковик и мне понравилась инфа.
Самоучно осваиваю С++, пока профан.
cOder, ты классно расписал программу в самом начале темы.
(хотя можно было использовать use namespace std; и просто cout, но это альтернативы)
Я скопировал данные, чтобы потом детально изучить.
Ответьте пожалуйста на такой вопрос:
Windows XP не разворачивает консоль во весь экран.
Как развернуть?
Я забрел на форум через поисковик и мне понравилась инфа.
Самоучно осваиваю С++, пока профан.
cOder, ты классно расписал программу в самом начале темы.
(хотя можно было использовать use namespace std; и просто cout, но это альтернативы)
Я скопировал данные, чтобы потом детально изучить.
Ответьте пожалуйста на такой вопрос:
Windows XP не разворачивает консоль во весь экран.
Как развернуть?
Привет ken.
Спасибо за лестный отзыв.
>>Ответьте пожалуйста на такой вопрос:
>>Windows XP не разворачивает консоль во весь экран.
>>Как развернуть?
Если ты имел в виду перевод из полноэкранного режима и обратно (как по комбинации alt-enter) то широко известен один хак - использование недокументированных ф-ций SetConsoleDisplayMode и GetConsoleDisplayMode. Работает в win2k/winxp. Вот тебе пример враппера этих функций, и пример его использования:
Спасибо за лестный отзыв.
>>Ответьте пожалуйста на такой вопрос:
>>Windows XP не разворачивает консоль во весь экран.
>>Как развернуть?
Если ты имел в виду перевод из полноэкранного режима и обратно (как по комбинации alt-enter) то широко известен один хак - использование недокументированных ф-ций SetConsoleDisplayMode и GetConsoleDisplayMode. Работает в win2k/winxp. Вот тебе пример враппера этих функций, и пример его использования:
Код: Выделить всё
#include <windows.h>
#include <iostream>
#include <conio.h>
class ConsoleManagement
{
public:
ConsoleManagement()
{
HMODULE hKernel32 = GetModuleHandle("kernel32");
SetConsoleDisplayMode = (PROCSETCONSOLEDISPLAYMODE)GetProcAddress(hKernel32,"SetConsoleDisplayMode");
GetConsoleDisplayMode = (PROCGETCONSOLEDISPLAYMODE)GetProcAddress(hKernel32,"GetConsoleDisplayMode");
this->handle = GetStdHandle(STD_OUTPUT_HANDLE);
}
virtual ~ConsoleManagement(){};
void setFullscreen()
{
this->SetConsoleDisplayMode(this->handle, 1, &this->oldMode);
}
void setWindowed()
{
this->SetConsoleDisplayMode(this->handle, this->oldMode, &this->oldMode);
}
private:
typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD);
typedef BOOL (WINAPI *PROCGETCONSOLEDISPLAYMODE)(LPDWORD);
PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode;
PROCGETCONSOLEDISPLAYMODE GetConsoleDisplayMode;
DWORD oldMode;
HANDLE handle;
};
void main(int argc, char *argv[])
{
ConsoleManagement con;
con.setFullscreen();
std::cout << "Hello, fullscreen!" << std::endl;
getch();
con.setWindowed();
std::cout << "Bye bye fullscreen!" << std::endl;
getch();
}
rep movsd
- Anmed
- СуперМодератор
- Сообщения: 3246
- Зарегистрирован: Ср фев 11, 2004 19:39
- Откуда: снова Шахты
- Контактная информация:

Эээ... Нда... а никто случаем не даёт частные уроки ассемблера для слабоумных? (ярко выраженная олигофрения) Очень надо для работы
мне ассемблер знать, а я дятел
Не программы писать на нём, а дизассемблировав файлик разобраться как работает. Чтобы убрать один- единственный запрос 
мне ассемблер знать, а я дятел


Культурный уровень общества наиболее точно определяется состоянием общественных туалетов, мусоросборников и отношением к старикам, инвалидам и детям.
-
- Случайно забежавший
- Сообщения: 4
- Зарегистрирован: Вт июн 21, 2005 1:14
- Откуда: Украина, г.Харьков
- Контактная информация:

Спасибо! Работает! :cheesy:
Ликбез - это точно для меня. Помимо программной функции попробовал Alt + Enter и сделал для себя дополнительное открытие.
У меня действительно есть масса вопросов, и было бы неплохо немного разобраться.
Можешь сказать, как однозначно и безглючно русифицировать консоль?
P.S. У меня есть одна книжная функция, но она глючит со второй половиной алфавита строчных букв.
Ликбез - это точно для меня. Помимо программной функции попробовал Alt + Enter и сделал для себя дополнительное открытие.
У меня действительно есть масса вопросов, и было бы неплохо немного разобраться.
Можешь сказать, как однозначно и безглючно русифицировать консоль?
P.S. У меня есть одна книжная функция, но она глючит со второй половиной алфавита строчных букв.
ken,
Один вопрос - а зачем консоль то ни в чём не повинную трогать?, я так понял ты только начал C++ изучать... консоль для новичков удобна, если использовать стандартные cout, а если пытаться на ней прорисовывать графику или использовать, применительно к ней же, малодокументированные ф-ии, то имхо работа с окнами куда проще
Один вопрос - а зачем консоль то ни в чём не повинную трогать?, я так понял ты только начал C++ изучать... консоль для новичков удобна, если использовать стандартные cout, а если пытаться на ней прорисовывать графику или использовать, применительно к ней же, малодокументированные ф-ии, то имхо работа с окнами куда проще

Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )
Люблю и поработать, особенно поспать )
-
- Случайно забежавший
- Сообщения: 4
- Зарегистрирован: Вт июн 21, 2005 1:14
- Откуда: Украина, г.Харьков
- Контактная информация:

Ты прав, возможностей с окнами больше.Eraser писал(а):ken,
Один вопрос - а зачем консоль то ни в чём не повинную трогать?, я так понял ты только начал C++ изучать... консоль для новичков удобна, если использовать стандартные cout, а если пытаться на ней прорисовывать графику или использовать, применительно к ней же, малодокументированные ф-ии, то имхо работа с окнами куда проще
Но ты прав и в том, что я новичок, так что хочу разобраться в основных возможностях С++, так что мне даже с консолью делов хватает.
А ты часом сможешь однозначно поставить точку в русификации консольной программы?
ken,
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.
Не знаю... а самое главное и желания нет разбираться, тут скоро с avalon'ом разбираться прийдётся... не до консолий.А ты часом сможешь однозначно поставить точку в русификации консольной программы?
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )
Люблю и поработать, особенно поспать )
-
- Случайно забежавший
- Сообщения: 4
- Зарегистрирован: Вт июн 21, 2005 1:14
- Откуда: Украина, г.Харьков
- Контактная информация:

Не знаю... а самое главное и желания нет разбираться, тут скоро с avalon'ом разбираться прийдётся... не до консолий.
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.[/quote]
Понимаю.
Просто я делал небольшие программки и столкнулся с такой проблемой.
Пробовал решить сам. Хотя не получилось, мозги поднапряг, экспериментировал. В книжке одной умной есть работающая функция, только она впоследствии ... сбой дает, а в ASCII (я небольшую прогу сделал для наглядного примера) алфавит русских строчных букв не един, а на две части разбросан. Это создает проблему именно со второй половиной строчных букв (той функцией заглавными выводить можно).
Я начал поиски в интернете, но на данный момент найдены аналогичные проблемы коллег.
Может просто функция несовершенна. После первой очистки экрана начинаются проблемы.
Если интересно, могу привести эту полурабочую функцию.
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.[/quote]
Понимаю.
Просто я делал небольшие программки и столкнулся с такой проблемой.
Пробовал решить сам. Хотя не получилось, мозги поднапряг, экспериментировал. В книжке одной умной есть работающая функция, только она впоследствии ... сбой дает, а в ASCII (я небольшую прогу сделал для наглядного примера) алфавит русских строчных букв не един, а на две части разбросан. Это создает проблему именно со второй половиной строчных букв (той функцией заглавными выводить можно).
Я начал поиски в интернете, но на данный момент найдены аналогичные проблемы коллег.
Может просто функция несовершенна. После первой очистки экрана начинаются проблемы.
Если интересно, могу привести эту полурабочую функцию.
- Anmed
- СуперМодератор
- Сообщения: 3246
- Зарегистрирован: Ср фев 11, 2004 19:39
- Откуда: снова Шахты
- Контактная информация:

В архиве два бинарника. Это дампы от блока управления автомобиля
KIA. Один дамп с иммобилайзером, второй без. Я поставил тот, что без,
но он от машины с модулем зажигания, а у меня трамблёрная версия.
Пришлось переделывать блок управления. Тайминги тоже отличаются.
В общем всё работает но кривовато. Клиентр доволен, а я нет. Хотелось бы в оригинальной прошивке убрать иммо. Можно ли это сбацать на основе рабочей? Думаю да, для этого собственно и нужен мне асм.
KIA. Один дамп с иммобилайзером, второй без. Я поставил тот, что без,
но он от машины с модулем зажигания, а у меня трамблёрная версия.
Пришлось переделывать блок управления. Тайминги тоже отличаются.
В общем всё работает но кривовато. Клиентр доволен, а я нет. Хотелось бы в оригинальной прошивке убрать иммо. Можно ли это сбацать на основе рабочей? Думаю да, для этого собственно и нужен мне асм.
Последний раз редактировалось Anmed Пн фев 13, 2006 12:19, всего редактировалось 1 раз.
Культурный уровень общества наиболее точно определяется состоянием общественных туалетов, мусоросборников и отношением к старикам, инвалидам и детям.