Hallo,
Ik ben in visual basic bezig met de gdi32 API's.
ik gebruik Ellipse om een circel te tekenen op het scherm zelf, dus niet op een Form.
Zie de code hieronder
Zoals je ziet doe ik dat in een timer (dat moet nu eenmaal voor de toepassing waarin ik het gebruik)
Via Taskmanager hou ik het aantal GDI Objecten in de gaten, dit wordt alleen steeds meer en zodra het boven de 9.999 komt, loopt mijn programma vast.
Ik moet dus de Ellipse's die ik maak, weer verwijderen lijkt mij..., maar hoe doe ik dat?
Het gekke is dat als ik i.p.v. op het scherm zelf teken, op mijn form teken ( dus GetWindowDC(0) vervang door Me.hdc) dat het aantal objecten niet stijgt
Ik ben in visual basic bezig met de gdi32 API's.
ik gebruik Ellipse om een circel te tekenen op het scherm zelf, dus niet op een Form.
Zie de code hieronder
Visual Basic:
1
2
3
4
5
6
7
8
9
| Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Sub Timer1_Timer() 'Draw the Ellipse on the Screen's DC Ellipse GetWindowDC(0), 100, 100, 150, 150 End Sub |
Zoals je ziet doe ik dat in een timer (dat moet nu eenmaal voor de toepassing waarin ik het gebruik)
Via Taskmanager hou ik het aantal GDI Objecten in de gaten, dit wordt alleen steeds meer en zodra het boven de 9.999 komt, loopt mijn programma vast.
Ik moet dus de Ellipse's die ik maak, weer verwijderen lijkt mij..., maar hoe doe ik dat?
Het gekke is dat als ik i.p.v. op het scherm zelf teken, op mijn form teken ( dus GetWindowDC(0) vervang door Me.hdc) dat het aantal objecten niet stijgt
[ Voor 8% gewijzigd door stereohead op 26-03-2008 08:54 ]