Лекция: Работа со строками в Windows. Изменение цвета и фона строки текста.
Для работы со строками и файлами в Windows существуют свои функции. Однако чаще всего приходится работать со строками, поэтому уделим внимание API-функциям, выводящим текстовую информацию на экран. Для этой цели обычно пользуются функциями TextOutиDrawText. Кроме них есть функция ExtTextOut, которая используется при нестандартном межсимвольном расстоянии в тексте, и функция TabbedTextOut, выводящая текст, содержащий символы табуляции. Когда необходимо вывести строку текста в заданной опорной точке графического устройства, то используют функцию
TextOut(ByValhDcAsLong, ByValx AsLong, ByValy AsLong, ByVallpStringAsString, ByValnCount_AsLong) AsLong, где x, y —координаты начала текста(опорной точки), lpString-строка текста, nCount-количество выводимых символов. По умолчанию текст располагается так, чтобы опорная точка совпадала с левой верхней точкой прямоугольника, куда помещается текст, при этом высота прямоугольника равна высоте символов шрифта, а длина-длине текста.Местоположение опорной точки можно менять с помощью функции SetTextAlign(ByValhdcAsLong, ByValwFlagsAsLong) AsLong
Для изменения цвета фона области прямоугольника и цвета символов текста необходимо перед вызовом рассмотренных функций обратиться к функции измения цвета фона: SetBkColor(ByValhdcAsLong,ByValcrColorAsLong)AsLong и изменения цвета символов
SetTextColor(ByValhdcAsLong, ByValcrColorAsLong) AsLong, гдеcrColor- цвет фона(символов), который устанавливается функцией RGBили шестнадцатеричной константой. Последняя функция позволяет сохранить старое значение цвета для возможного восстановления. Например, OldColor:= SetTextColor(MyDC, RGB(50,50,50))'Меняем цвет' *** Работасоцветом***SetTextColor(MyDC, OldColor) 'Восстанавливаем цвет В Windows существуют два режима закраски фона текста: Transparent=1иOpaque=2(по умолчанию). В
Первом случае фон прямоугольника с налагаемым текстом не перерисовывается (при этом старая информация будет просвечивать сквозь налагаемую на нее новую информацию), а во втором-фон перерисовывается и старая информация закрашивается цветом фона прямоугольника с новой информацией. Установить режим закраски фона можно функцией SetBkMode(ByValhdcAsLong, ByValnBkModeAsLong) AsLong Определить текущий режим можно функцией GetBkMode.