🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.vbasic
Article #92201

VB6 - zrzut ekranu

#92201
From: Dariusz Piech
Date: Tue, 18 Oct 2005 16:37
47 lines
2340 bytes
Witam i proszę o pomoc. Otóż napisałem kontrolkę, której zadaniem jest zrzut 
ekranu formy, na której jest umieszczona (co 1 min.).
Przy okazji muszę uzyskać efekt przezroczystości poprzez łączenie zrzuconego 
obrazu z czarno-białą maską i tłem.
Kontrolka ma publiczną procedurę ZrzutOkna wywoływaną z formularza przez 
Timer.
Jednak po uruchomieniu program stopniowo pożera pamięć. Może ktoś podpowie 
co robię źle?

Kod wygląda następująco:

Private maska As StdPicture    - maska i kolor to bitmapy służące do 
uzyskania przezroczystości
Private kolor As StdPicture
Private maskaDC As Long
Private kolorDC As Long
Private obrazHwnd As Long    - uchwyt do okna formularza
Private obrazDC As Long

Private Sub UserControl_Initialize()

obrazHwnd = GetParent(UserControl.hwnd)
obrazDC = GetDC(obrazHwnd)

maskaDC = CreateCompatibleDC(obrazDC)
kolorDC = CreateCompatibleDC(obrazDC)

Set maska = LoadResPicture(101, vbResBitmap)
Set kolor = LoadResPicture(102, vbResBitmap)

SelectObject maskaDC, maska
SelectObject kolorDC, kolor

End Sub
***********************************************
Public Sub ZrzutOkna()

BitBlt maskaDC, 0, 0, 550, 540, obrazDC, 143, 0, SRCAND
BitBlt kolorDC, 0, 0, 550, 540, maskaDC, 0, 0, SRCPAINT

Dim HPicture As Long

HPicture = HBitmapFromDC(kolorDC, 550, 540)

SaveJPG HPicture, "c:\obrazek.jpg", 20

End Sub
Technical Details
Message-ID: <dj38cj$j7m$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Dariusz Piech" <darek_44@go2.pl>
Newsgroups: pl.comp.lang.vbasic
Subject: VB6 - zrzut ekranu
Date: Tue, 18 Oct 2005 18:37:44 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 49
Message-ID: <dj38cj$j7m$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: abi110.internetdsl.tpnet.pl
X-Trace: atlantis.news.tpi.pl 1129653459 19702 83.16.34.110 (18 Oct 2005 16:37:39 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 18 Oct 2005 16:37:39 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit