Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/88: Рейтинг темы: голосов - 88, средняя оценка - 4.56
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Как менять размер шрифта?

12.04.2013, 17:57. Показов 17926. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как менять размер шрифта?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2013, 17:57
Ответы с готовыми решениями:

Размер шрифта, как узнать ширину одной буковки (символа)?
Всем здрасьте. При создании шрифта везде только один параметр (int size ..ну или другой тип..), вроде когда его указываешь - это высота...

Изменить размер шрифта консоли в win7
Добрый день! Необходимо изменить размер шрифта консоли Windows 7. Пробовал разными способами, через SetConsoleFont из kernel32,...

Окно класса static, заливка фона, размер, стиль и цвет шрифта
Добрый вечер! LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) { switch(Message) { ...

10
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
12.04.2013, 18:05
taras atavin, а вы не пробовали гуглить и пользоваться msdn ,вы не подумай те не чего плохого,просто складывается такое ощущение,что каждый вопрос который вас интересует вы кидаете сюда,вместо того что бы поискать в интернете или книгах ответ.
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.04.2013, 18:09  [ТС]
А всё таки?

Добавлено через 2 минуты
Цитата Сообщение от Игорь с++ Посмотреть сообщение
а вы не пробовали гуглить
Ответ гугла. Какое отношение html имеет к теме?
0
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
12.04.2013, 18:34
http://msdn.microsoft.com/en-u... 85%29.aspx верю что тут что нибудь есть стоящее )))
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.04.2013, 18:38  [ТС]
Функции GDI. Вообще нет даже TextOut.
0
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
12.04.2013, 18:43
http://msdn.microsoft.com/en-u... 85%29.aspx -

Fonts and Text

About Fonts
About Text Output
Using the Font and Text-Output Functions
Font and Text Reference
Font Embedding Reference
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.04.2013, 21:20
Размер шрифта задается при его создании. Размер уже созданного шрифта менять нельзя.

Добавлено через 7 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
Добавлено через 2 минуты
Ответ гугла. Какое отношение html имеет к теме?
))))))) Вот Google -> www.google.ru !
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
12.04.2013, 21:49
taras atavin, вот смотри текст программы , там и шрифт можно менять и размер
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
47
48
49
50
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        
        HDC hDC;
 
PAINTSTRUCT ps;
        
HFONT oldFont,newFont;        
        
        
    switch (message)                  /* handle the messages */
    {
           
           
           case WM_PAINT:
                
                        hDC=BeginPaint(hwnd,&ps);
 
SetBkColor(hDC,RGB(255,255,0));
SetTextColor(hDC,RGB(0,0,128));
 
newFont = CreateFont(25,20,120,0,700,3,4,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,("Arial"));
 
oldFont = (HFONT)SelectObject(hDC,newFont);
 
                        TextOut(hDC, 20, 142, "Âîò òâîé òåêñò ", strlen("Âîò òâîé òåêñò"));
 
 SelectObject(hDC,oldFont);
 
 
                        EndPaint(hwnd,&ps);
 
                
                break;
                
                           
        case WM_DESTROY:
             
DeleteObject(oldFont);
DeleteObject(newFont);
             
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
Миниатюры
Как менять размер шрифта?  
3
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
30.06.2018, 09:25
Извиняюсь, не понял. Что за жанглирование с newfont, oldfont ? Создал перемен. newfont, передал ее в oldfont, вывел текст, выбрал oldfont. И в конце удалил newfont, oldfont ???? Ктонить объясните пожалуйста, что за махинации ? Зачем так ?
0
2734 / 889 / 331
Регистрация: 10.02.2018
Сообщений: 2,108
30.06.2018, 10:38
ilja123, всё рисование происходит при помощи сущности "Device Context". Есть большое количество функций рисования. Для упрощения их синтаксиса часть атрибутов не передаётся каждый раз в каждой функции, а как бы назначается контексту заранее. Шрифт - один из этих атрибутов. Один раз его назначаете (SelectObject) и далее все функции рисования текста будут использовать этот шрифт. С другой стороны, контекст - долгоживущий объект, при запросе контекста в разных окнах и программах может возвращаться одна и та же сущность. По правилам хорошего тона, если вы меняете его атрибуты, то потом хорошо бы вернуть всё в исходное состояние.

Фонт - это то же отдельная сущность. То что в системе есть какой-то файл с описанием шрифта, не отменяет того факта,что нужно информацию из него развернуть в нечто более практичное в плане использования. Нужно создать в памяти образы символов в соответствии с желаемыми размерами и стилями. Поэтому, сперва загрузили шрифт и подготовили его для рисования, а в конце работы почистили за собой.

Пример содержит ошибки, фонт создаётся многократно, а удаление выполняется единожды и используется не инициализированная локальная переменная, старый фонт нельзя удалять. Но в целом, общий алгоритм вывода текста показывается верно.
0
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
30.06.2018, 10:55
Вот Microsoft пример:

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
47
48
49
case WM_PAINT:
        {
        RECT rect;
        HBRUSH hBrush;
        HFONT hFont;
        hdc = BeginPaint(hWnd, &ps);
 
            
 
        //Logical units are device dependent pixels, so this will create a handle to a logical font that is 48 pixels in height.
        //The width, when set to 0, will cause the font mapper to choose the closest matching value.
        //The font face name will be Impact.
        hFont = CreateFont(48,0,0,0,FW_DONTCARE,FALSE,TRUE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,
            CLIP_DEFAULT_PRECIS,CLEARTYPE_QUALITY, VARIABLE_PITCH,TEXT("Impact"));
        SelectObject(hdc, hFont);
        
        //Sets the coordinates for the rectangle in which the text is to be formatted.
        SetRect(&rect, 100,100,700,200);
        SetTextColor(hdc, RGB(255,0,0));
        DrawText(hdc, TEXT("Drawing Text with Impact"), -1,&rect, DT_NOCLIP);
        
 
        //Logical units are device dependent pixels, so this will create a handle to a logical font that is 36 pixels in height.
        //The width, when set to 20, will cause the font mapper to choose a font which, in this case, is stretched.
        //The font face name will be Times New Roman.  This time nEscapement is at -300 tenths of a degree (-30 degrees)
        hFont = CreateFont(36,20,-300,0,FW_DONTCARE,FALSE,TRUE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,
            CLIP_DEFAULT_PRECIS,CLEARTYPE_QUALITY, VARIABLE_PITCH,TEXT("Times New Roman"));
        SelectObject(hdc,hFont);
        
        //Sets the coordinates for the rectangle in which the text is to be formatted.
        SetRect(&rect, 100, 200, 900, 800);
        SetTextColor(hdc, RGB(0,128,0));
        DrawText(hdc, TEXT("Drawing Text with Times New Roman"), -1,&rect, DT_NOCLIP);
        
            
        //Logical units are device dependent pixels, so this will create a handle to a logical font that is 36 pixels in height.
        //The width, when set to 10, will cause the font mapper to choose a font which, in this case, is compressed. 
        //The font face name will be Arial. This time nEscapement is at 250 tenths of a degree (25 degrees)
        hFont = CreateFont(36,10,250,0,FW_DONTCARE,FALSE,TRUE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,
            CLIP_DEFAULT_PRECIS,ANTIALIASED_QUALITY, VARIABLE_PITCH,TEXT("Arial"));
        SelectObject(hdc,hFont);
 
        //Sets the coordinates for the rectangle in which the text is to be formatted.
        SetRect(&rect, 500, 200, 1400, 600);
        SetTextColor(hdc, RGB(0,0,255));
        DrawText(hdc, TEXT("Drawing Text with Arial"), -1,&rect, DT_NOCLIP);
        DeleteObject(hFont);    
    
    EndPaint(hWnd, &ps);
Они прямо в WM_PAINT создают hFont, потом 10 раз создают новый шрифт и в конце, перед EndPaint удаляют шрифт???

Старый шрифт не сохраняют и в конце удаляют 1 раз, а создавали...

Я так же сделал, только hFont создал в начале WinProc. Я так понял, что после удаления будет использоваться стандартный системный шрифт. Значит проблем быть не должно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2018, 10:55
Помогаю со студенческими работами здесь

Как сделать так, чтобы пользователь не мог менять размер шрифта сайта?
Как сделать так, чтобы пользователь не мог менять размер шрифта сайта? Спасибо.

Программа "Блокнот": менять размер шрифта при выборе его значения в Combolist
Здравствуйте, Пишу свой первый блокнот, вот.... делаю выпадающий список (например для выбора шрифта), но не понимаю как например мне...

Как менять кодировку шрифта в swf файле
Нужно поменять кодировку шрифтов в swf файле - на русскую. Исходников нет. При декомпиляции чо-то происходит с файлом, и анимация начинает...

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

Как изменить размер шрифта
как изменить размер шрифта в формате оси ???????.очень нужно в курсовой работе.помогите пожалуйста.дайте коды на это


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru