Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

86.Особенности работы с логическим инструментом. Пример отображения в окне прямоугольника заданного размера, толщины и цвета.

Используя функции API, нарисовать красный прямоугольник с толщиной линии в 30 пикселей. DimPenAsLong, OldPenAsLongConstLightRed= &HFF' Идентификатора цветаPrivateSubCommand1_Click()DimhDcAsLonghDc= GetDC(Form1.hWnd)'Получаем дескриптор контекста формы 'Создаем сплошное перо красногоцвета' шириной 30 пикселей Pen= CreatePen(ps_Solid, 30, LightRed)'vbRed' Вставляем перо в контексте OldPen= SelectObject(hDc, Pen)'Pисуем прямоугольник CallRectangle(hDc, 30, 30, 300, 200)

CallSelectObject(hDc, OldPen)'Восстанавливаем контекст CallDeleteObject(Pen) 'Удаляем нестандартное перо'Освобождаем контекст окна CallReleaseDC(hWnd, hDc)EndSubPrivateSubForm_Load()Caption= "Пример использования контекста"Command1.Caption = "Rectangle"BackColor= &HFFFFFF'Белый цвет фона окнаEndSub

87.Работа со строками в 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.

88.Выбор опорной точки для вывода в окно текстовых сообщений.

По умолчанию текст располагается так, чтобы опорная точка совпадала с левой верхней точкой прямоугольника, куда помещается текст, при этом высота прямоугольника равна высоте символов шрифта, а длина-длине текста. Место положение опорной точки можно менять с помощью функцииSetTextAlign(ByValhdcAsLong, ByValwFlagsAsLong) AsLong

Аргумент wFlags может содержать комбинации следующих констант с префиксом TA_.

TA_BASELINE=24 –выравнивание по базовой линии шрифта.

TA_BOTTOM=8 –выравнивание по нижней стороне охватывающего прямоугольника.

TA_CENTER=6 —выравнивание по центру верхней стороны охватывающего прямоугольника. TA_LEFT=0 —выравнивание по левой стороне охватывающего прямоугольника.

TA_TOP=0 —выравнивание по верхней стороне охватывающего прямоугольника.

TA_RIGHT=2 –выравнивание по правой стороне охватывающего прямоугольника.

ТA_UPDATECP= 1 –координаты x,y функции TextOut игнорируются, вывод осуществляется относительно текущего положения пера(функция MoveToEx)

Для вывода много строчного текста используют функцию DrawText(ByValhdcAsLong,ByVallpStrAsString,ByValnCountAsLong, lpRectAsRECT, _ByValwFormatAsLong) AsLong Здесь аргумент nCount может иметь значение-1, что у кажет на то, что количество символов будет подсчитываться ядром Windows, а не Вами. Аргумент lpRect-переменная структуры RECT, содержащая координаты прямоугольной области:

TypeRECTLeftAsLong-X координата левого верхнего угла;

TopAsLong-Y координата левого верхнего угла;

RightAsLong-X координата правого нижнего угла; BottomAsLong-Y координата правого нижнего угла. EndType Координаты прямоугольной области должны быть заданы до вызова функции DrawText. Аргумент wFormat задает формат вывода текста. Форматы вывода текста начинаются с префикса DT_.

DT_BOTTOM—выравнивание по нижней части прямоугольной области. DT_TOP –выравнивание по верхней части прямоугольной области. DT_LEFT –выравнивание по левому краю прямоугольной области.

DT_RIGHT –выравнивание по правому краю прямоугольной области.

DT_CENTER –центрирование по горизонтали.

DT_VCENTER –центрирование по вертикали. DT_CALCRECT –динамически меняет ширину прямоугольной области.

DT_SINGLELINE –вывод текста в одну строку. DT_WORDBREAK –текст переносится на новую строку при достижении правой границы области, а разрыв строки происходит между словами.