| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Как установить фонт, принятый в системе по умолчан |
| Автор: Ibragim 2.8.2005, 00:37 |
| Ночи доброй. Есть HDC PaintDC; По команде TextOut(PaintDC, 0, i*20, "Это текст", 4) фраза "Это текст" выводится явно увеличенным по сравнению с обычным (в других приложениях) шрифтом. SDK советует создавать свой шрифт функцией HFONT MyFont = HFONT CreateFont(...) и использовать его (CreateObject(PaintDC, MyFont)). Но мне нужен системный по умолчанию - тот к которому привык пользователь. А если это он и есть (чем-то оно же все-таки рисует), то как его уменьшить? Спасибо за внимание. |
| Автор: rsm 2.8.2005, 20:08 | ||
Шрифты - штука достаточно сложная, с кучей параметров для отображения. Подробнее см. справку по функции CreateFont. Можно не создавать шрифт с нуля, а изменить шрифт по-умолчанию. Приведенный ниже код создает на базе стандартного шрифта новый шрифт (Comic Sans MS, жирный, подчеркнутый). И в дополнение раскрашивает его зеленым цветом.
|
| Автор: Earnest 3.8.2005, 07:08 | ||
Среди stock-объектов GDI есть готовый фонт. Может даже не один, не помню. Но один из них точно тебе подходит. Второй вариант - если это у тебя контрол в диалоге - тогда спроси фонт у диалога и установи своему контролу. На API не помню как пишется, а c MFC примерно так:
Windows, видимо, еще со времен 3.х системным по-умолчанию считает как раз этот черный жирный фонт, хотя во всех окнах-диалогах используется другой... Сейчас вот сомневаюсь, может не среди сток-объектов есть нужный фонт, а где-то среди capabilities. MSDN под рукой, к сожалению, нет... |
| Автор: Ibragim 3.8.2005, 12:50 |
| rsm спасибо, вполне подошло |