• 締切済み

VB6でのピクチャボックスの印字方法

現在、VB6からのピクチャボックス印字に困っています。 ピクチャボックスに貼り付けている画像はメタファイル(.emf)ですが、これをPrinterオブジェクトで印字すると、画質が鮮明になりません。また、同じファイルをExcelに貼り付け印字するとすごく鮮明に印字されます。 ExcelのようにVB6できれいに印字させるのはどうしたら良いのでしょうか?

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

そりゃぁ、ピクチャボックスの方はビットマップに変換されていますから、これを印刷しても元のベクトルデータの鮮明さを得ることは出来ません。 えーと、確か、APIでメタファイルを描画する命令があったような気が……… うん。こんな感じで出来るみたいです。 Option Explicit Private Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal lpszMetaFile As String) As Long Private Declare Function PlayEnhMetaFile Lib "gdi32" (ByVal hdc As Long, ByVal hEmf As Long, lpRect As RECT) As Long Private Declare Function CloseEnhMetaFile Lib "gdi32" (ByVal hdc As Long) As Long Private Type RECT     Left As Long     Top As Long     Right As Long     Bottom As Long End Type Private Sub Command1_Click()   Dim prt As Printer   Dim hEmf  As Long   Dim sFileName  As String   Dim rectPrt   As RECT   'EMF読む   sFileName = "d:\temp\u12-2.emf" & vbNullChar   hEmf = GetEnhMetaFile(sFileName)   '印刷   Printer.ScaleMode = vbTwips   Printer.PSet (0, 0), vbWhite      With rectPrt     .Left = 567     .Top = 567     .Right = 1500     .Bottom = 1500   End With   Call PlayEnhMetaFile(Printer.hdc, hEmf, rectPrt)   Printer.EndDoc      'EMF閉じる    Call CloseEnhMetaFile(hEmf)    End Sub ちなみに画像は↓から入手しました。

参考URL:
http://www.lively.co.jp/illustcut01.2.html

関連するQ&A