Eli formi, jossa on "liian" iso kuva picture1, A4 kokoinen. Picture boxin päällä on nippu labeleitä, joihin tulostetaan tekstiä, eli täytetään taustakuvana oleva kaavake. Lopuksi tämä tulostetaan a4 kokoisena ulos. Homma toimii, melkein. Ongelma tulee siinä, että kuvan pitäisi mahtua kokonaan ruudulle, että framella ympäröity alue kopioidaan kuvaksi, joka sitten tulostetaan, jolloin tekstit saadaan istumaan oikeille paikoille kuvaan. Eli kuva ei mahdu ruudulle ja tule mm. starttivalikko mukaan tms.. miten homman saisi muutettua niin, että tämä tehdään piilossa, eikä näkösällä?
Käytän putkasta löytynyttä tekniikkaa eli:
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
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.EndDocEli jos homman saisi toimimaan piilossa jotenkin ja vain todellakin frame1:n sisältö tai jos vaikka picture1 sisältö ja labelit sen päällä..?
Moikka Toitsu!
Voisit vaikka käyttää koko formia elikä tulostaa kaiken PrintForm komennolla...
Elikä pistät ekax formin borderstyle'ksi none ja taustavärin valkoiseksi (kuten myös labeleitten ja muitten kontrollien) ja sit vaikkapa formin Top-arvoksi 1000...ja mikäänhän ei estä käyttämästä vaikkapa aivan erillistä formia juuri tähän tulostusjutskaan jne...
No niin..
Huomattavasti parempi lähestymistapa. Voiko tuota tulostus tarkkuutta säätää? Oletuksena ei kovinkaan tarkka.
Moikka taas Toitsu!
Säädä suoraan tulostuksenhallinnassa.
En ole aivan varma nutta PrintForm-metodi tulostaa Formista SreenShotin jolloin resoluutiota voi parantaa vain suurentamalla tulostettavaa formia. Vai onko VB6:ssa jokin muu PrintForm-metodi?
Moikka taas Toitsu!
Pikku lisäys vielä - kokeile image objektia sen pictureboxin tilalle, säädä backstyle transparentiksi ja testaile zoom ominaisuutta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.