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.EndDoc
Eli 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.