товщина шріфтаAs Long
'налаштування шріфтаAs ByteAs ByteAs ByteAs ByteAs ByteAs ByteAs ByteAs Byte
'шрифт (LF_FACECIZE - 1) As Byte Type
Ця структура однозначно описує, то як текст буде відображений на пристрої. Після заповнення структури викликаємо API функцію CreateFontIndirect. Функція повертає довге ціле число, яке є покажчиком на об'єкт - шрифт. p align="justify"> Зараз необхідно застосувати створений шрифт до пристрою.
Вибираємо шрифт за допомогою функції SelectObject. Функція повертає довге ціле значення - покажчик на об'єкт який був встановлений на пристрої до цього. Цей об'єкт є шрифт який використовувався пристроєм до цього. Збережемо цей дескриптор, для відновлення його після малювання. p align="justify"> Виводимо текст.
Реалізація програми.
Розробка інтерфейсу програми
В
розміщення текстовий напис малюнок
Програмний код.
Оголошення API функцій.
'деякі константи для шріфтаConst LF_FACECIZE = 32
Public Const LOGPIXELSY = 90
'тип точка,
'стандартний Win32 API тіпType pointapi x As Long y As LongType
'структура шрифту win32 APIType LOGFONTAs LongAs LongAs LongAs LongAs LongAs ByteAs ByteAs ByteAs ByteAs ByteAs ByteAs ByteAs Byte (LF_FACECIZE - 1) As Byte
End Type
'установка об'єкта для вибраного пристрою
'повертає ідентифікатор об'єкта який був встановлений раніше
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
'видалення об'єкта за хендлуDeclare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
'створення об'єкта шрифту з структура LOGFONT
Public Declare Function CreateFontIndirect Lib "gdi32" Alias ​​"CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
'виведення в устройствоDeclare Function TextOut Lib "gdi32" Alias ​​"TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long ) As Long
'функція отримання інформації з устройствуDeclare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal intIndex As Long) As Long
Визначення центру мас.
'визначення центру мас
Private Function getCM () As pointapi 'середнє арифметичне значення' координат елементів полігону Dim arr () As pointapi arr = dots Dim sX As Long, sY As Long Dim i As Integer 'проходимо по всіх ...