DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 18:25
Оценка:
DrawText рисует текст нечетким. Хотелось бы чтобы шрифт был четким, как например в меню или как когда выводится текст в createwindows "static".
если присмотреться близко к монитору, то получается что текст выводится как бы из двух линий: одна четкая тонкая, темная. А поверх нее выводится серая толстая линия. В итоге текст выглядит нечетко. Как исправить?
Re: DrawText рисует текст нечетким
От: VladFein США  
Дата: 12.06.13 19:09
Оценка:
Здравствуйте, Kolp, Вы писали:

K>DrawText рисует текст нечетким. Хотелось бы чтобы шрифт был четким, как например в меню или как когда выводится текст в createwindows "static".

K>если присмотреться близко к монитору, то получается что текст выводится как бы из двух линий: одна четкая тонкая, темная. А поверх нее выводится серая толстая линия. В итоге текст выглядит нечетко. Как исправить?

DrawText рисует так как ему заказано.
Код бы посмотреть...
Как фонт создаётся / выбирается?
А серые линии — это антиалиасинг, скорее всего.
Re[2]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 19:28
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Здравствуйте, Kolp, Вы писали:


K>>DrawText рисует текст нечетким. Хотелось бы чтобы шрифт был четким, как например в меню или как когда выводится текст в createwindows "static".

K>>если присмотреться близко к монитору, то получается что текст выводится как бы из двух линий: одна четкая тонкая, темная. А поверх нее выводится серая толстая линия. В итоге текст выглядит нечетко. Как исправить?

VF>DrawText рисует так как ему заказано.

VF>Код бы посмотреть...
VF>Как фонт создаётся / выбирается?
VF>А серые линии — это антиалиасинг, скорее всего.

Фонт выбирется через SelectObject и createfont

Как убрать антиалиасинг?
Re: DrawText рисует текст нечетким
От: okman Беларусь https://searchinform.ru/
Дата: 12.06.13 19:47
Оценка:
Здравствуйте, Kolp, Вы писали:

K>DrawText рисует текст нечетким. Хотелось бы чтобы шрифт был четким, как например в меню или как когда выводится текст в createwindows "static".

K>если присмотреться близко к монитору, то получается что текст выводится как бы из двух линий: одна четкая тонкая, темная. А поверх нее выводится серая толстая линия. В итоге текст выглядит нечетко. Как исправить?

А скриншот можете сделать ? Ведь проблема может быть вовсе не в DrawText...
Re[2]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 19:50
Оценка:
Здравствуйте, okman, Вы писали:

O>Здравствуйте, Kolp, Вы писали:


K>>DrawText рисует текст нечетким. Хотелось бы чтобы шрифт был четким, как например в меню или как когда выводится текст в createwindows "static".

K>>если присмотреться близко к монитору, то получается что текст выводится как бы из двух линий: одна четкая тонкая, темная. А поверх нее выводится серая толстая линия. В итоге текст выглядит нечетко. Как исправить?

O>А скриншот можете сделать ? Ведь проблема может быть вовсе не в DrawText...


А почему тогда рядом в той же форме выводишь текст через createwindows("static" все четко выводится?
Re[2]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 19:53
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>DrawText рисует так как ему заказано.

VF>Код бы посмотреть...
VF>Как фонт создаётся / выбирается?
VF>А серые линии — это антиалиасинг, скорее всего.

HFONT newFont55=CreateFont(-MulDiv(10,GetDeviceCaps(hdc,LOGPIXELSY),72),0,0,0,FW_BOLD,FALSE, FALSE, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH|FF_DONTCARE,strFont);
SelectObject(hdcMem, newFont55);
Re[3]: DrawText рисует текст нечетким
От: VladFein США  
Дата: 12.06.13 20:03
Оценка: 7 (2) +1
Здравствуйте, Kolp, Вы писали:

K>HFONT newFont55=CreateFont(-MulDiv(10,GetDeviceCaps(hdc,LOGPIXELSY),72),0,0,0,FW_BOLD,FALSE, FALSE, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH|FF_DONTCARE,strFont);

K>SelectObject(hdcMem, newFont55);

Вместо PROOF_QUALITY используйте NONANTIALIASED_QUALITY
Re[3]: DrawText рисует текст нечетким
От: VladFein США  
Дата: 12.06.13 20:14
Оценка:
Здравствуйте, Kolp, Вы писали:

K>А почему тогда рядом в той же форме выводишь текст через createwindows("static" все четко выводится?


Потому что там другой фонт.
В Вашем коде, например, что такое strFont?
Re[4]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 20:16
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Вместо PROOF_QUALITY используйте NONANTIALIASED_QUALITY


Огромное спасибо, VladFein. Работает. Четко стало.
Re[5]: DrawText рисует текст нечетким
От: VladFein США  
Дата: 12.06.13 20:41
Оценка:
Здравствуйте, Kolp, Вы писали:

K>Огромное спасибо, VladFein.

Пожалуйста!

K>Работает. Четко стало.

Ну это на любителя. Многим кажется что анти-алиасный фонт легче читать, нет "лестниц".
Re[6]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 20:44
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Здравствуйте, Kolp, Вы писали:


K>>Огромное спасибо, VladFein.

VF>Пожалуйста!

K>>Работает. Четко стало.

VF>Ну это на любителя. Многим кажется что анти-алиасный фонт легче читать, нет "лестниц".

Возможно лестниц и нет, но текст как бы смазанный получается. Воспринимается еще хуже.
Я бы немного толще сделал шрифт. Кажется есть свойство что-то типа thin — тоньше-толще. Не знаете где менять?
Re[7]: DrawText рисует текст нечетким
От: VladFein США  
Дата: 12.06.13 20:48
Оценка:
Здравствуйте, Kolp, Вы писали:

K>Возможно лестниц и нет, но текст как бы смазанный получается. Воспринимается еще хуже.

K>Я бы немного толще сделал шрифт. Кажется есть свойство что-то типа thin — тоньше-толще. Не знаете где менять?

Знаю, совершенно случайно
У Вас заказан FW_BOLD, должен быть довольно толстым.
Если не хватает — попробуйте FW_EXTRABOLD или FW_HEAVY.


/* Font Weights */
#define FW_DONTCARE         0
#define FW_THIN             100
#define FW_EXTRALIGHT       200
#define FW_LIGHT            300
#define FW_NORMAL           400
#define FW_MEDIUM           500
#define FW_SEMIBOLD         600
#define FW_BOLD             700
#define FW_EXTRABOLD        800
#define FW_HEAVY            900
Re[8]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 20:57
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Здравствуйте, Kolp, Вы писали:


K>>Возможно лестниц и нет, но текст как бы смазанный получается. Воспринимается еще хуже.

K>>Я бы немного толще сделал шрифт. Кажется есть свойство что-то типа thin — тоньше-толще. Не знаете где менять?

VF>Знаю, совершенно случайно

VF>У Вас заказан FW_BOLD, должен быть довольно толстым.
VF>Если не хватает — попробуйте FW_EXTRABOLD или FW_HEAVY.


VF>
VF>/* Font Weights */
VF>#define FW_DONTCARE         0
VF>#define FW_THIN             100
VF>#define FW_EXTRALIGHT       200
VF>#define FW_LIGHT            300
VF>#define FW_NORMAL           400
VF>#define FW_MEDIUM           500
VF>#define FW_SEMIBOLD         600
VF>#define FW_BOLD             700
VF>#define FW_EXTRABOLD        800
VF>#define FW_HEAVY            900
VF>


На самом деле там где тонко стоит FW_NORMAL. Ладно, думаю пойдет так.
Re[8]: DrawText рисует текст нечетким
От: Kolp  
Дата: 12.06.13 21:00
Оценка:
Здравствуйте, VladFein, Вы писали:

VF>Здравствуйте, Kolp, Вы писали:


K>>Возможно лестниц и нет, но текст как бы смазанный получается. Воспринимается еще хуже.

K>>Я бы немного толще сделал шрифт. Кажется есть свойство что-то типа thin — тоньше-толще. Не знаете где менять?

VF>Знаю, совершенно случайно

VF>У Вас заказан FW_BOLD, должен быть довольно толстым.
VF>Если не хватает — попробуйте FW_EXTRABOLD или FW_HEAVY.


VF>
VF>/* Font Weights */
VF>#define FW_DONTCARE         0
VF>#define FW_THIN             100
VF>#define FW_EXTRALIGHT       200
VF>#define FW_LIGHT            300
VF>#define FW_NORMAL           400
VF>#define FW_MEDIUM           500
VF>#define FW_SEMIBOLD         600
VF>#define FW_BOLD             700
VF>#define FW_EXTRABOLD        800
VF>#define FW_HEAVY            900
VF>


Спасибо. Восхищаюсь людьми, знающими winapi и его функции. По мне сделано как-то мутно. Вроде мсдн есть, и книги какие-то есть. А фиг — что-то сделать иногда хрен поймешь где рыть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.