
Изменение атрибутов текста, функция DrawText?
Модераторы: Duncon, Hawk, Romeo, Eugie
Продолжаю изучать возможности функции DrawText. Пытаюсь изменить атрибуты текста. Возможно ли это сделать используя данную функцию? Если нет, то какой альтернативный вариант? И ещё, DrawText дает свой фон, как можно от этого избавиться (чтобы выводился чисто текст)? Подскажите пожалуйста. 

Под атрибутами текста я имею в виду размер, и не пойму как указать несколько параметров для форматирования текста. Потому что flags:= (параметр1, параметр2, ...); - не проходит.
Vet_chv, я уже приводил пример вызова DrawText(), в т.ч. как задавать размер прямоугольника, куда вписывается текст (см. forum/topic6751.html ). Что непонятно?
Насчет фона, есть такая функция SetBkMode(), используй в ней режим TRANSPARENT (см. http://msdn.microsoft.com/library/defau ... w_47hh.asp )
Насчет фона, есть такая функция SetBkMode(), используй в ней режим TRANSPARENT (см. http://msdn.microsoft.com/library/defau ... w_47hh.asp )
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Flag - это параметр функции содержащий логическое пересечение параметров. Другими словами для того, что передать в качестве Flag несколько параметров, нужно перечислить их через логическое ИЛИ (or - в Паскаль подобных языках, | - в С подобных).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
только не пересечение, а объединение 

- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Мдаа. Не сосредоточенно ответил 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Спасибо, за ответы. Я тут поэксперементировал, у меня знаком + получается (компилятор не ругается). А вот насчёт форматирования текста вижу глубину неизмеримую (по моему слишком мудрено описано всё это в хэлпе Делфи).
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Плюс не подходит. Ты получишь совсем не то, что требуется. В Делфи используй or.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Если подходить логически, то "+", конечно, не правильно, но практически - прокатит. Дело в том, что значения тех флагов таковы, что для ТАКИХ ЗНАЧЕНИЙ арифметичекий "+" и логическое побитовое сложение дадут одинаковый результатRomeo писал(а):Плюс не подходит. Ты получишь совсем не то, что требуется. В Делфи используй or.

Код: Выделить всё
#define DT_CENTER 0x00000001
#define DT_RIGHT 0x00000002
#define DT_VCENTER 0x00000004
#define DT_BOTTOM 0x00000008
#define DT_WORDBREAK 0x00000010
#define DT_SINGLELINE 0x00000020
#define DT_EXPANDTABS 0x00000040
#define DT_TABSTOP 0x00000080
#define DT_NOCLIP 0x00000100
#define DT_EXTERNALLEADING 0x00000200
#define DT_CALCRECT 0x00000400
#define DT_NOPREFIX 0x00000800
#define DT_INTERNAL 0x00001000
Спасибо за все ответы, приятно просвещаться :-). Я попытался поискать инфо о форматировании текста (размер, остальные атрибуты) в хэлпе Делфи - мудрено как-то, тяжело понять как это всё воплотить. Если не затруднит, объясните пожалуйста (примером с небольшими пояснениями) как задавать атрибуты текста. Спасибо за помощь. Всегда рад ответам-советам!