Article View: pl.comp.lang.vbasic
Article #92203Re: VB6 - zrzut ekranu
From: Hubert Dołęga
Date: Fri, 28 Oct 2005 14:25
Date: Fri, 28 Oct 2005 14:25
58 lines
2734 bytes
2734 bytes
Dariusz Piech napisał: > 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: > > obrazHwnd = GetParent(UserControl.hwnd) > obrazDC = GetDC(obrazHwnd) To chyba można IIRC zastąpić czymś w rodzaju obrazDC = UserControl.Parent.hdc > maskaDC = CreateCompatibleDC(obrazDC) > kolorDC = CreateCompatibleDC(obrazDC) > > Set maska = LoadResPicture(101, vbResBitmap) > Set kolor = LoadResPicture(102, vbResBitmap) > > SelectObject maskaDC, maska > SelectObject kolorDC, kolor Powinieneś zachowywać uchwyt do bitmapy wycowywanej z DC, aby móc ją wprowadzić przed wywałaniem na DC funkcji DeleteObject. Kod powinien wyglądać mniej więcej tak: hOldBMP = SelectObject (maskaDC, maska) '... SelectObject maskaDC, hOldBMP DeleteDC maskaDC Trochę szerzej pisałem o tym poniższej wiadomości http://groups.google.com/group/pl.comp.lang.vbasic/msg/df8c58fcbcfb8f88 Więcej informacji znajdziesz w MSDN'ie i poniższym tutorialu http://edais.mvps.org/Tutorials/GDI/DC/index.html. Wydaje mi się jednak, że za wycieki pamięci są w zdecydowaniej większości odpowiedzialne inne procedury niż UserControl_Initialize, ale bez spojrzenia na caly kod nic Ci więcej nie pomogę. Jak chcesz to możesz go podesłać na priva. W znalezieniu błędów bardzo pomocny będzie program GDIObj ze strony http://www.fengyuan.com/download.html. Pozdrawiam, -- Hubert Arkadiusz Dołęga Zanim napiszesz na priva zdejmij majtki-.
Technical Details
Message-ID:
<slrn.pl.dm4cvi.s0.hubert@hueymanchew.pl.invalid>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<dj38cj$j7m$1@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Hubert Dołęga <hubert@majtki-energy.pl.invalid> Newsgroups: pl.comp.lang.vbasic Subject: Re: VB6 - zrzut ekranu Date: Fri, 28 Oct 2005 14:25:36 +0000 (UTC) Organization: Hard Core Slrn-pl User Lines: 58 Message-ID: <slrn.pl.dm4cvi.s0.hubert@hueymanchew.pl.invalid> References: <dj38cj$j7m$1@atlantis.news.tpi.pl> NNTP-Posting-Host: 134-mo3-3.acn.waw.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1130509536 16770 62.121.106.134 (28 Oct 2005 14:25:36 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 28 Oct 2005 14:25:36 +0000 (UTC) X-User: hueymanchew User-Agent: slrn/0.9.7.4 (pl-1.4.2w) (Windows2000 (i686)) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit