網かけ文字を印字・表示する
                                                        玄関へお回り下さい。
網かけ文字列を印字する         (004)
     Step 0.2 Step 0.1 は点の表示密度で、キャラクター (水平 = 1 単位あたり240 twip、
垂直 = 1 単位あたり 120 twip)単位での表示なので
(カラー印刷の場合は文字の印字を後にして下さい。)

Option Explicit   'SampleNo=004 WindowsXP VB6.0(SP5) 2002.04.17

Private Sub sAmikakePrint(Mystr As String, X As Single, Y As Single)

'--- VB5.0 で文字の背景が透明にならない場合 --------
'VB6.0 では必要ありません、又、逆に文字を印刷してから網掛けを
'印刷するならできますが、カラーの場合や塗潰しの場合は不可です。
'下記の5行を各ページの先頭に記入して下さい。
'詳しくは、下記、VB5.0 における印刷関連の制限事項および注意点 を参照
'http://support.microsoft.com/default.aspx?scid=kb;ja;JP411269
  Printer.FontTransparent = False
  Printer.Print " "
  Printer.CurrentX = 0
  Printer.CurrentY = 0
  Printer.FontTransparent = True
'---------------------------------------------------

  Dim Icount  As Single
  Dim Jcount  As Single
  Dim sngHeight As Single
  Dim sngWidth As Single
  Printer.ScaleMode = vbCharacters    'キャラクター単位で統一
  Printer.DrawWidth = 2          '点の大きさ設定1にすると薄い色
  sngWidth = Printer.TextWidth(Mystr)   '文字列の幅を取得
  sngHeight = Printer.TextHeight(Mystr)  '文字列の高さを取得
  For Icount = X To X + sngWidth Step 0.2
    For Jcount = Y To Y + sngHeight Step 0.1
      Printer.PSet (Icount, Jcount), QBColor(0) 'ドットを印刷
    Next Jcount
  Next Icount
  Printer.CurrentX = X          '座標の設定
  Printer.CurrentY = Y
  Printer.Print Mystr           '設定文字列を印字
  Printer.EndDoc
End Sub


Private Sub
Command1_Click()
  Printer.FontSize = 36
  '10桁目の3行目に印刷
  Call sAmikakePrint("VBレスキュー(花ちゃん)", 10, 3)
  Printer.EndDoc
End Sub


網かけ文字列を表示する            (004)
    印刷密度と表示密度は違うので解像度に合せて修正して下さい。

Private Sub sAmikakeShow(Mystr As String, X As Single, Y As Single)
  Dim Icount  As Single
  Dim Jcount  As Single
  Dim sngHeight As Single
  Dim sngWidth As Single
  Form1.ScaleMode = vbCharacters     'キャラクター単位で統一
  Form1.DrawWidth = 1           '点の大きさ設定1にすると薄い色
  sngWidth = Form1.TextWidth(Mystr)    '文字列の幅を取得
  sngHeight = Form1.TextHeight(Mystr)   '文字列の高さを取得
  For Icount = X To X + sngWidth Step 0.25
    For Jcount = Y To Y + sngHeight Step 0.125
      Form1.PSet (Icount, Jcount), QBColor(12)
    Next Jcount
  Next Icount
  '後で文字を表示すると色かぶりしない
  Form1.CurrentX = X           '座標の設定
  Form1.CurrentY = Y
  Form1.Print Mystr            '設定文字列を印字
End Sub


Private Sub Command2_Click()
  Form1.BackColor = QBColor(15)
  Form1.FontSize = 20
  '4桁目の2行目に表示
  Call sAmikakeShow("VBレスキュー(花ちゃん)", 4, 2)
End Sub

結 果

   

印字の場合はもっと綺麗になります。




2006/07/10