- Код: Выделить всё
Sub RisovatKonstr(Konstr As Konstrukcia, Frm As Object, tpVydel As Vydel)
Dim hBmpPrev As Long, pbDocHeight As Long, pbDocWidth As Long
Dim ret As Long, pbDochDC As Long, hBmp As Long
pbDochDC = CreateCompatibleDC(GetDC(0))
pbDocHeight = 2000
pbDocWidth = 2000
hBmp = CreateCompatibleBitmap(GetDC(0), pbDocWidth, pbDocHeight)
If hBmp = 0 Then
MsgBox "Пора перезагрузиться. "
End
End If
hBmpPrev = SelectObject(pbDochDC, hBmp)
SetBkMode pbDochDC, TRANSPARENT
Ster pbDochDC, pbDocWidth, pbDocHeight' pbDochDC закрашивается цветом фона
Narisovat Konstr, pbDochDC, tpVydel' на pbDochDC рисуется рисунок
StretchBlt Frm.hdc, 0, 0, Frm.ScaleWidth, Frm.ScaleHeight, pbDochDC, 0, 0, pbDocWidth, pbDocHeight, vbSrcCopy
hBmp = SelectObject(pbDochDC, hBmpPrev)
ret = DeleteDC(pbDochDC)
DeleteObject hBmp
End Sub
Так вот перезагружаться приходится очень часто . Как найти, где утекает память? Может можно хоть временно отсрочить перезагрузку, наример создав другой битмап, когда этот обнуляется?