🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: VB6 - zrzut ekranu

#92203
From: Hubert Dołęga
Date: Fri, 28 Oct 2005 14:25
58 lines
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-mail
References: <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