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

CONSOLE_FONT_INFOEX - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
10.02.2012, 13:22     CONSOLE_FONT_INFOEX #1
Здравствуйте!
Набросал код, не работает:
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
#include <Windows.h>
#include <Wincon.h>
#include <iostream>
 
using namespace std;
 
int main()
  {  
      CONSOLE_FONT_INFOEX f;
      COORD c;
      
      c.X=10; c.Y=8;
      
      f.cbSize=15;
      f.dwFontSize=c;
      f.FontFamily=FF_SCRIPT;
      f.FontWeight=400;
      f.FaseName="Arial";   
          
       SetConsoleTitle  ("Hellow, world");
       
     SetCurrentConsoleFontEx (GENERIC_WRITE, FALSE, f);
     cout << "Hellow, world!"<<endl;   
    
       system("pause");
  return 0;
}
Ошибки следующие:
Код
9 Test1_windows.cpp `CONSOLE_FONT_INFOEX' undeclared (first use this function)
       (Each undeclared identifier is reported only once for each function it appears in.) 
22Test1_windows.cpp `SetCurrentConsoleFontEx' undeclared (first use this function)
Документация к использованным функциям тут (CONSOLE_FONT_INFOEX) и тут (SetCurrentConsoleFontEx)

Я новичёк в этом деле, не понимаю, что у меня не так. Прошу помочь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2012, 13:22     CONSOLE_FONT_INFOEX
Посмотрите здесь:

C++ WinAPI Каково назначение члена структуры CONSOLE_FONT_INFOEX?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 13:31     CONSOLE_FONT_INFOEX #2
Цитата Сообщение от Boogi43 Посмотреть сообщение
Я новичёк в этом деле, не понимаю, что у меня не так. Прошу помочь.
- смотри єтот пост, функция

Цитата Сообщение от Boogi43 Посмотреть сообщение
SetCurrentConsoleFontEx
недокументирована, поэтому чтобы её попользоваться нужно поизголяться
[ С++ ] Изменить шрифт в консольном приложение ( программно )

Добавлено через 54 секунды
Boogi43, и вообще попробуй так
SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE),14);

Цитата Сообщение от Boogi43 Посмотреть сообщение
CONSOLE_FONT_INFOEX f;
* * * COORD c;
c.X=10; c.Y=8;
f.cbSize=15;
* * * f.dwFontSize=c;
* * * f.FontFamily=FF_SCRIPT;
* * * f.FontWeight=400;
* * * f.FaseName="Arial"; *
- без всего этого
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
10.02.2012, 13:40  [ТС]     CONSOLE_FONT_INFOEX #3
SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE),14);

А можно подробное про это? Что к чему здесь?
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 13:47     CONSOLE_FONT_INFOEX #4
GetStdHandle - нормально на русском описана здесь
SetConsoleFont также как и SetConsoleFontEx недокументирована и требует всё тех же ухищрений, но чуть меньших чем SetConsoleFontEx

Добавлено через 1 минуту
Boogi43, зачем тебе вообще понадобилась функция SetConsoleFont(Ex)?
Возможно услышав проблемму смогу подсказать выход из неё без использования недокументированных функций
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
10.02.2012, 13:47     CONSOLE_FONT_INFOEX #5
Вот пример:
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
#include <Windows.h>
#include <Wincon.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    CONSOLE_FONT_INFOEX cfon;
    ZeroMemory(&cfon, sizeof(CONSOLE_FONT_INFOEX));
    cfon.cbSize=sizeof(CONSOLE_FONT_INFOEX);
    cfon.nFont=6;
    cfon.dwFontSize.X=7;
    cfon.dwFontSize.Y=12;
    cfon.FontFamily=54; // Lucida Console
    cfon.FontWeight=400;
    lstrcpyW(cfon.FaceName, L"Lucida Console");
    SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), false, &cfon);
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Привет, мир!"<<endl; 
 
    system("pause");
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 13:55     CONSOLE_FONT_INFOEX #6
Remarks
To obtain the size of the font, pass the font index to the GetConsoleFontSize function.
Requirements
Minimum supported client Windows Vista (на XP даже и не стоит ожидать отработки)
Minimum supported server Windows Server 2008
Header
Wincon.h (include Windows.h)


Boogi43, для простоты запиши свой код так + вручную выполни настройку шрифта приложения - вот здесь показал как это делать Создание файла в UTF-8 кодировке
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
#include <iostream>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Привет, мир!"<<endl; 
    system("pause");
    return 0;
}
Да и вообще руссифицировать можно с помощью system("chcp 1251") и ещё кучи способов...
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
10.02.2012, 14:33  [ТС]     CONSOLE_FONT_INFOEX #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Boogi43, зачем тебе вообще понадобилась функция SetConsoleFont(Ex)?
Возможно услышав проблемму смогу подсказать выход из неё без использования недокументированных функций
Нужно написать функцию, создающее окно в консоле, что-то типо турбо паскаля 7.0, со всеми наворотами (типо настроек размера окна, шрифта и т.д.) Для начала требуется научиться управлять шрифтом, фоном, размером окна. Но какую бы функцию не пробывал, выдаёт ошибку, не понимаю, что с ними делать.
Вот ещё одна ошибка

expected primary-expression before "const"

Ругается
C++
1
 b=SetConsoleWindowInfo(GENERIC_READ, TRUE, const k*);
код программы:
Код
#include <Windows.h>
#include <Wincon.h>
#include <iostream>

using namespace std;

int main()
  {  
          
       _SMALL_RECT k;
       bool b;
       k.Left=1;
       k.Top=1;
       k.Right=200;
       k.Bottom=200;
       
       
       b=SetConsoleWindowInfo(GENERIC_READ, TRUE, const k*Small_RECT );


          
       SetConsoleTitle  ("Hellow, world");
       
       cout << "Hellow, world!"<<endl;   
    
       system("pause");
  return 0;
}
Добавлено через 2 минуты
Ругается на ваш код
`CONSOLE_FONT_INFOEX' undeclared (first use this function)
10 `;' before "cfon" и т.д.
Так же ругался и на мой код
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
10.02.2012, 15:27     CONSOLE_FONT_INFOEX #8
Цитата Сообщение от Boogi43 Посмотреть сообщение
Ругается на ваш код `CONSOLE_FONT_INFOEX' undeclared (first use this function) 10 `;' before "cfon" и т.д.
У меня на Visual C++ 2008 Express Edition не ругается
Миниатюры
CONSOLE_FONT_INFOEX  
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
10.02.2012, 15:30     CONSOLE_FONT_INFOEX #9
Сама програмака
Миниатюры
CONSOLE_FONT_INFOEX  
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 15:57     CONSOLE_FONT_INFOEX #10
Цитата Сообщение от Boogi43 Посмотреть сообщение
Нужно написать функцию, создающее окно в консоле, что-то типо турбо паскаля 7.0, со всеми наворотами (типо настроек размера окна, шрифта и т.д.) Для начала требуется научиться управлять шрифтом, фоном, размером окна. Но какую бы функцию не пробывал, выдаёт ошибку, не понимаю, что с ними делать.
- так сделай консоль с поддержкой MFC там уже есть готовые палитра цветов, диалог выбора шрифта, зачем мучаться?

Цитата Сообщение от QWAN Посмотреть сообщение
У меня на Visual C++ 2008 Express Edition не ругается
- ты забыл сказать что в Висте или 7-ке работаешь,а
Цитата Сообщение от QWAN Посмотреть сообщение
CONSOLE_FONT_INFOEX cfon;
- доступна лишь в них, кому писал???
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Minimum supported client Windows Vista
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
10.02.2012, 16:02     CONSOLE_FONT_INFOEX #11
Да у меня 7 Windows, на XP не проверял.
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 16:07     CONSOLE_FONT_INFOEX #12
Цитата Сообщение от QWAN Посмотреть сообщение
Да у меня 7 Windows, на XP не проверял.
- и не нужно этого делать во первых написано же в самом MSDN что только с Висты работает, во вторых я уже компилировал твой код на ХП и выдало что структура CONSOLE_FONT_INFOEX необъявлена и такой функции нет SetCurrentConsoleFontEx
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
10.02.2012, 23:19  [ТС]     CONSOLE_FONT_INFOEX #13
ааа, сразу бы сказали что эти функции доступных только в visual ой я дураак, я ж на dev-C++ пишу

Добавлено через 7 минут
На счёт MFC, нельзя, задача в том, что бы проект можно было скомпилировать на любом компиляторе. Операционная система windows 7.
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 23:40     CONSOLE_FONT_INFOEX #14
Boogi43, загляни в этот топик возможно что нибудь почерпнёшь
Русский текст без танцев с бубнами
Yandex
Объявления
10.02.2012, 23:40     CONSOLE_FONT_INFOEX
Ответ Создать тему
Опции темы

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