Eli pystyykö Visual Basic:illä tulostamaan formilta tietyn alueen, kuten frame:n sisällön vain?
Pystyy, mutta alue pitää ensin kopioida kuvaan:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source Private Sub Form_Click() Me.ScaleMode = 3 Picture1.AutoRedraw = True ' kopioidaan oikea alue kuvaan BitBlt Picture1.hdc, 0, 0, Frame1.Width, Frame1.Height, Me.hdc, Frame1.Left, Frame1.Top, SRCCOPY Picture1.Picture = Picture1.Image ' lähetetään kuva tulostimelle Printer.PaintPicture Picture1, 0, 0 Printer.EndDoc End Sub
Tässä Frame1 on tulostettava kehys ja Picture1 on väliaikainen kuva.
Mittayksiköksi valitaan pikseli (ScaleMode 3), jotta koordinaatit kelpaavat suoraan BitBlt-funktiolle.
Kiitos Antti tuo toimii todella hyvin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.