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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 106, средняя оценка - 4.90
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
31.07.2011, 18:58     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #1
Нашел только что можно изменить шрифт с помощью, не документированной функции SetConsoleFont, так же есть документированная функция SetCurrentConsoleFontEx, но так как Я новичок Я не понимаю, как ими пользоваться. Ни кто не может показать, как ими пользоваться на конкретном примере?!
ОС: Windows.

Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
murderer
3175 / 1398 / 69
Регистрация: 06.10.2010
Сообщений: 3,017
14.02.2012, 21:23     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #21
http://www.rsdn.ru/article/baseserv/dlluse.xml

Список функций dll содержится в lib-файле, который надо передавать через командную строку линкеру.

Ну вот почему в Delphi и FASM можно создать проект в одном файле где всё как на ладони и все настройки задаются директивами, а в C++ и MASM нужно создавать 100500 файлов и передавать "много букаф" в командную строку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
14.02.2012, 22:03     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #22
Ну я не знаю, может это компилятор MSVS такой ()? В компиляторе g++ список функций передавать компилятору НЕ НАДО.
А вообще рекомендации: пользоваться благами цивилизации и не компилить через командную строку, тогда всё будет круто и жизнь станет лучше. (кроме экстраординарных случаев). В одном файле тоже никто ничё делать не запрещает, ей-ей!
...А про дельфи и паскаль я сам могу рассказать (см. подпись) но не буду, холивар не пройдёт!
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
10.06.2014, 00:24     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #23
У меня почему-то такая строка не работает
C++
1
GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, pCFI);
хоть и прописывал в Dev C++ -lpthread.
где прописывать -lpthread я знаю.
dan2nick
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 1
24.10.2016, 17:55     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #24
пытаюсь подключить свой шрифт font.ttf - не получается. в чем проблема - не понимаю...
буду благодарен за подсказку.
работаю в visual studio 2010

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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
 
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);  // получение No. консоли
CONSOLE_FONT_INFOEX cf;
 
 
int main() 
{
/******************************************************************************************************/
    for (int i = 0; i < 256; i++)
    {
        if ( !(i%32) ) { cout << "\n "; }
        cout << (((i >= 7  &&  i <= 10)  ||  i == 13) ? ' ' : (char)i);
    }
 
    cout << "\n\n";
    _getch();
/******************************************************************************************************/
    if ( AddFontResourceEx/*W*/(L"font.ttf", FR_PRIVATE, NULL) )
    {
        cf.cbSize       = sizeof(CONSOLE_FONT_INFOEX);  // cf.cbSize          = sizeof(cf);
        GetCurrentConsoleFontEx(hOut, true, &cf); // Получить текущий шрифт
        cf.dwFontSize.Y = 8;
        //cf.dwFontSize.X = 8;
        //cf.FontFamily   = FF_DONTCARE;
        //cf.FontWeight   = FW_NORMAL;  // FW_NORMAL --> 400
        //lstrcpyW(cf.FaceName, L"Font");   //TEXT("ZX Spectrum7 Bold")
        wcscpy( cf.FaceName, L"Font" ); //TEXT("ZX Spectrum7 Bold")
        SetCurrentConsoleFontEx( hOut, false, &cf );    // установить новый шрифт
    }
    else { system("cls"); cout << "Font Error"; }
/******************************************************************************************************/
    for (int i = 0; i < 256; i++)
    {
        if ( !(i%32) ) { cout << "\n "; }
        cout << (((i >= 7  &&  i <= 10)  ||  i == 13) ? ' ' : (char)i);
    }
 
    cout << "\n\n";
    _getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2016, 19:20     [ С++ ] Изменить шрифт в консольном приложение ( программно )
Еще ссылки по теме:

C++ как сменить шрифт в консольном приложении
Задать значение клавише в с++,консольном приложение C++
C++ Изменить шрифт или цвет шрифта в текстовом файле

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
24.10.2016, 19:20     [ С++ ] Изменить шрифт в консольном приложение ( программно ) #25
Цитата Сообщение от fair7 Посмотреть сообщение
хоть и прописывал в Dev C++ -lpthread.
где прописывать -lpthread я знаю.
Ошибка какая? Минимизируй код и выдложи сюда.

Навскидку - lpthread нужно для многопоточных приложений. При чём тут GetCurrentConsoleFont, я не понял.
Yandex
Объявления
24.10.2016, 19:20     [ С++ ] Изменить шрифт в консольном приложение ( программно )
Ответ Создать тему
Опции темы

Текущее время: 06:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru