LOGBRUSH в WinGDI

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

LOGBRUSH в WinGDI

Сообщение coolged » 24.07.2005 (Вс) 17:32

Народ, как прописать в структурке LOGBRUSH lbStyle (стиль кисти)
прозрачность типа VB-ного vbTransparent не загружая в lbStyle патерна ????

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.07.2005 (Вс) 19:00

А как ты собираешься рисовать прозрачной кистью? Ничего не будет видно ведь?
Изображение

coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

Сообщение coolged » 24.07.2005 (Вс) 20:00

tyomitch писал(а):А как ты собираешься рисовать прозрачной кистью? Ничего не будет видно ведь?


Дело в том, что при рисовании в режиме VB vbTransparent - все что за вычерч. фигурой - видно, а цвет становится естественно бледноват.
Вопрос как это реализуется на API GDI......

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.07.2005 (Вс) 22:02

coolged писал(а):
tyomitch писал(а):А как ты собираешься рисовать прозрачной кистью? Ничего не будет видно ведь?


Дело в том, что при рисовании в режиме VB vbTransparent - все что за вычерч. фигурой - видно, а цвет становится естественно бледноват.
Вопрос как это реализуется на API GDI......

Неправда. При рисовании в режиме VB vbTransparent фон просто не заливается. vbTransparent означает "нет заливки".
В API GDI этому соответствует BS_HOLLOW
Изображение

coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

Сообщение coolged » 24.07.2005 (Вс) 23:19

в API View в constants
Const BS_HOLLOW = BS_NULL , а BS_NULL = 1 - т.е., на сколько я понимаю, стиль кисти без всякого стиля :-( .... вот так вот ....

Тут есть еще одна проблемка ....
при переносе фигурки - пересчитываю координаты:


Private Sub prRecalcFigs()
Dim I As Integer
For I = 0 To UBound(arrSlatDrw)
arrSlatDrw(I).x = arrSlatDrw(I).x + (PointMove.x - PointDown.x)
arrSlatDrw(I).y = arrSlatDrw(I).y + (PointMove.y - PointDown.y)
Next I
End Sub 'prRecalcFigs

тут естественно:
Public PointMove As POINTAPI - коорд. точки X-Y при MouseMove
Public PointDown As POINTAPI - коорд. точки X-Y при MouseDown

потом перерисовываю как положено с инициал. перьев и кистей и при помощи:

Polygon hdc, arrSlatDrw(0), UBound(arrSlatDrw) + 1

а потом:

StretchBlt frmSlatConfig.hdc, .Left, .Top, .Right, .Bottom, _
CmDC, .Left, .Top, .Right, .Bottom, SRCCOPY

выкладываю на frmSlatConfig.hdc

Так вот, фигурка или полиго как бы улетает(ускользает) с под курсора мыши т.е. склад. впечатление, что координаты набигаю быстрее чем передвигается курсор :-)
Что я тут не так делаю??? please Help Me




[code][/code]


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

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

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

    TopList