Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Прозрачный Image в PictureBox


Автор: Гость_Artur 24.5.2005, 22:21
Как нарисовать в PictureBox прозрачный Image (гиф)?
Можно ли это сделать методом Picture1.PaintPicture Image1.picture, 0, 0 ???

Автор: Gannibal 24.5.2005, 23:41
http://forum.vingrad.ru/index.php?showtopic=52988 посмотри в этом топике .. полистай там будет тема как нарисоват картинку прозрачную или тип такого smile

Автор: KEKC 25.5.2005, 15:09
M.E.G.U.S, не работает smile И это не то что мне надо smile .
Мне надо, чтобы я мог наложить на картинку в пикчер-боксе другую картинку, прозрачную. smile

Автор: Black_Star 25.5.2005, 16:32
Код

Private Declare Function TransparentBlt Lib "Msimg32.dll" ( _
    ByVal hdcDest As Long, ByVal nXOriginDest As Long, _
    ByVal nYOriginDest As Long, ByVal nWidthDest As Long, _
    ByVal nHeightDest As Long, ByVal hdcSrc As Long, _
    ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, _
    ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, _
    ByVal crTransparent As Long) As Boolean

smile

Автор: KEKC 26.5.2005, 20:38
клмн...
ну как вам обьяснить?
Это не то - мне очень надо, чтобы я мог, исползуя функцию пэйнт-пикчер (или что-то подобное), нарисовать, например, в пикчер-боксе, в котором уже есть какой-то рисунок, прозрачный битмап smile

Автор: Mephisto 27.5.2005, 02:45
Цитата(KEKC @ 26.5.2005, 20:38)
исползуя функцию пэйнт-пикчер (или что-то подобное)

Тоже не совсем понял. Обьясни на пальцах:
1)Есть то-то;
2)Появилось что-то;
3)Не хочу этого;
4)Есть вот это;
5)Хочу чтобы и то и другое;
smile
Таким вот образом.

Автор: Black_Star 27.5.2005, 17:36
Цитата
нарисовать, например, в пикчер-боксе, в котором уже есть какой-то рисунок, прозрачный битмап

Ну а тебе что дал? Рисует битмап в таком-то ДЦ из такого-то с изменением (или без) размеров и +с таким-то прозрачным цветом. Что не так?

Автор: KEKC 30.5.2005, 21:52
Цитата
Тоже не совсем понял. Обьясни на пальцах:
1)Есть то-то;
2)Появилось что-то;
3)Не хочу этого;
4)Есть вот это;
5)Хочу чтобы и то и другое;

Надеюсь, что вы все меня поймёте на этот раз smile
По схеме Mephisto...

С помощью процедуры пэинт-пикчер я нарисовал на обьекте Пикчер1 какой-то рисунок.
Я хочу вывести на этом обьекте (Пикчер1) рисунок из обьекта Пикчер2. В Пикчер2 находится прозрачная картинка (из гиф-файла). Однако, когда я использую процедуру Picture1.PaintPicture Picture2.Picture, 0, 0, на обьект Пикчер1 выводится не прозрачная картинка на фоне той, что была.

Посмотрите примерчик: http://safard.eclub.lv/vingrad.zip[/size][size=6]

Автор: Black_Star 31.5.2005, 16:54
Ну елка... 3й раз говорю!
Код

Private Declare Function TBLT Lib "Msimg32.dll" Alias "TransparentBlt" ( _
    ByVal hdcDest As Long, ByVal nXOriginDest As Long, _
    ByVal nYOriginDest As Long, ByVal nWidthDest As Long, _
    ByVal nHeightDest As Long, ByVal hdcSrc As Long, _
    ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, _
    ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, _
    ByVal crTransparent As Long) As Boolean
Option Explicit

Private Sub Command1_Click()
'    Picture1.PaintPicture Picture2.Picture, 0, 0
TBLT Picture1.hDC, 0, 0, 104, 154, Picture2.hDC, 0, 0, 100, 100, vbGreen

End Sub

' 30 ìàÿ 2005 ã. 19:44 ïî Ãðèíâè÷ó
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
'Ñ ïîìîùüþ ïðîöåäóðû ïýèíò-ïèê÷åð ÿ íàðèñîâàë íà
'îáüåêòå Ïèê÷åð1 êàêîé-òî ðèñóíîê.
'ß õî÷ó âûâåñòè íà ýòîì îáüåêòå (Ïèê÷åð1) ðèñóíîê
'èç îáüåêòà Ïèê÷åð2. Â Ïèê÷åð2 íàõîäèòñÿ ïðîçðà÷íàÿ
'êàðòèíêà (èç ãèô-ôàéëà). Îäíàêî, êîãäà ÿ èñïîëüçóþ
'ïðîöåäóðó...
'Picture1.PaintPicture Picture2.Picture, 0, 0
'..., íà îáüåêò Ïèê÷åð1 âûâîäèòñÿ íå ïðîçðà÷íàÿ
'êàðòèíêà íà ôîíå òîé, ÷òî áûëà.


И не говори, что не понимаешь...

Автор: cardinal 31.5.2005, 17:03
Black_Star, а что это с начала 16 строки за фигня? smile

Автор: korob2001 31.5.2005, 17:49
cardinal - это коментарий. smile

Автор: Black_Star 1.6.2005, 14:08
cardinal, с примера выдрал, исправил и вставил... почему-то русский алфавит не воспринял... smile

Автор: Naghual 1.6.2005, 14:52
Цитата
почему-то русский алфавит не воспринял

А я говорил, говорил ведь... И копировать и вставлять нужно при русской раскладке. smile

Автор: Guest 1.6.2005, 16:37
А по-моему, раскладка тут ни причём.
Это же - хтмл кодировка.

Автор: Guest 1.6.2005, 16:45
Black_Star, спасибо.
Вот только там глюк какой-то:
http://safard.nm.ru/a.gif
...
А если поставить у Picture1.ауторедро = тру, тогда вообще не идёт.

smile

Автор: Guest 1.6.2005, 16:49
[font=impact][color=darkred][SIZE=8]YPA

Vsjo poluchilos'

Spasibo vsem.

Автор: Black_Star 2.6.2005, 02:39
А если ставить autoredraw=true, то надо добавить Picture1.refresh

Автор: Guest 2.6.2005, 13:00
Ок. Всё идёт. Спасибо.

По этому очень важному в играх вопросу обращайтесь ко мне - [email protected] smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)