アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!