С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

[ С++ ] Изменить шрифт в консольном приложение ( программно ) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация алгоритма find_firdt_not_of через другие алгоритмы http://www.cyberforum.ru/cpp-beginners/thread337817.html
Хотел создать эту тему в разделе С/С++ для экспертов, но мне было отказано в виду отсутствия неких прав. Поэтому формулирую тему здесь. Есть стандартный алгоритм std::find_first_of. Но нет...
C++ String to LPCSTR проблема такая (vc++ 2005) error C2664: 'CreateFileA' : cannot convert parameter 1 from 'System::String ^' to 'LPCSTR' поиск в гоогл непамог ... String^ str = comboBoxCOMNAME->Text; hCom =... http://www.cyberforum.ru/cpp-beginners/thread337804.html
C++ Посоветуйте новичку в С++
Здравствуйте! После школьной программы знаком с основами Паскаля, Делфи. Скоро поступлю в ВУЗ. Скорей всего буду изучать там С++. Решил немного подготовиться. Скачал книгу Либерти (21 день). ...
Преобразование строки в double C++
Собственно есть код: #include <iostream> #include <iomanip> using namespace std; double atof(const char *nPtr) {
C++ Как сделать так, чтобы программа понимала русские буквы? http://www.cyberforum.ru/cpp-beginners/thread337779.html
И если знаете как убрать этот огромный массив символов "char mass2" на chr виснет все... Так вот код программы. Мне нужно чтобы она выводила статистику по русским символам правильно... а то...
C++ Интернет и С++ Здраствуйте. Посоветуйте книги, статьи по сетевому программированию на С++, хочу понять саму систему, как там все должно быть устроено, т. е. что бы обьяснялся не сам инструментарий. Спасибо. подробнее

Показать сообщение отдельно
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
14.02.2012, 17:40
Может, пригодиться кому:
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
#include <windows.h>
#include <stdio.h>
typedef BOOL (WINAPI *SETCONSOLEFONT)(HANDLE, DWORD);     // прототип недокументированый функции
 SETCONSOLEFONT SetConsoleFont;
 
 
int main () {
 
 //Это надо для работы в Lucida Console
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 //Определимся со структурой CONSOLE_FONT_INFO
 CONSOLE_FONT_INFO CFI;
 CONSOLE_FONT_INFO* pCFI= &CFI; 
 
 //Информация о шрифте- так, чтобы знать! 
 GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, pCFI);
 
 printf ("nachalnii shrift est %d\n", pCFI->nFont);
 getchar ();
 
 HMODULE hmod = GetModuleHandleA("KERNEL32.DLL");
 SetConsoleFont =(SETCONSOLEFONT) GetProcAddress(hmod, "SetConsoleFont");
 
// printf ("адрес если надо %x\n", SetConsoleFont);
// getchar ();
 for (int i= 0; i< 16; i ++) {
  SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE),i);
  GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, pCFI);
  printf ("установил шрифт %d", pCFI->nFont);
  getchar ();
 }
 getchar ();
 return 0;
}

работает со шрифта номер 0 и до 13-го безукоризнено, дальше повторения идут, может потому, что всего 14 шрифтов установлено?

Прототипа GetCurrentConsoleFont не было в инклудах, чему я несказанно улдивлён, дописывал сам

SetConsoleFont недокументированная функция, поэтому гарантированно работает исключительно на версии, как у меня (XP home SP2, )

Шрифты, меняются, по умолчанию для каждого шрифта- свой размер, чё за принцип я не понял, но похоже, что по возрастанию.

SetConsoleCP (1251);
SetConsoleOutputCP (1251);

НУжны поскольку я работаю в Dev-Cpp, дабы увидеть русский язык при установлении Lucida Console, методом научного тыка выяснено, что это шрифты NN 6, 8, 10, 11


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Как узнать версию оси;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <stdio.h>
int main () {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 OSVERSIONINFO OS;
 ZeroMemory(&OS, sizeof(OSVERSIONINFO));
 OS.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 GetVersionEx (&OS);
 
 printf ("Старший номер версии операционной системы есть %d\n", OS.dwMajorVersion);
 printf ("Младший номер версии операционной системы есть %d\n", OS.dwMinorVersion);
 printf ("Номер построения операционной системы. %d\n", OS.dwBuildNumber);
 printf ("Платформа операционной системы %d\n", OS.dwPlatformId);
 printf ("Сервис пак %s\n", OS.szCSDVersion);
 
 
 getchar ();
 return 0;
}
Тут подробнее
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.