DrawLines из GDI+

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

DrawLines из GDI+

Сообщение VERITAS » 29.04.2009 (Ср) 9:31

Добрый день.
В GDIPlusAPI функции предназначенные для рисования линий, прямоугольников и т.д. перегружаемые - т.е. используют разные данные на входе, тобишь Integer, Float и т.д.. Например:
Код: Выделить всё
Public Declare Function GdipDrawLine Lib "gdiplus" (ByVal graphics As Long, ByVal pen As Long, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single) As GpStatus
Public Declare Function GdipDrawLineI Lib "gdiplus" (ByVal graphics As Long, ByVal pen As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As GpStatus
Public Declare Function GdipDrawLines Lib "gdiplus" (ByVal graphics As Long, ByVal pen As Long, ByRef Points As POINTF, ByVal count As Long) As GpStatus

Так вот, я никак не могу понять что необходимо передать в функцию GdipDrawLines в параметре ByRef Points As POINTF... По логике вещей - т.е. по логике Microsoft (MSDN) - это должен быть массив типа POINTF
Код: Выделить всё
Public Type POINTF   ' aka PointF
   x As Single
   y As Single
End Type

Но функция объявлена именно так. Попытка декларировать Points как Points() не дает никаких результатов. Пробовал и другие ухищрения, но это не дало никакого эффекта. Как же все таки передать в эту функцию массив точек???

Вот пример (MSDN) того как это в VB.Net делается
Код: Выделить всё
Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawLines(pen, points)

, где Point- тот же POINTF только для целых x, y
No comments ...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: DrawLines из GDI+

Сообщение jangle » 29.04.2009 (Ср) 9:51

Первый элемент массива POINTF, а в параметре count - количество элементов. Очевидно же из декларации функции.

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Re: DrawLines из GDI+

Сообщение VERITAS » 29.04.2009 (Ср) 10:01

Да уж.. позор мне. Видно на мышлении сказывается недосыпание. Спасибо jangle это действительно так.
No comments ...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 36

    TopList  
cron