UNICODE文字を印刷するには?

解決


ぽこ  2004-03-29 16:59:18  No: 82749  IP: [192.*.*.*]

過去ログを検索してみるとTextOutWという関数を使うと出来ると
あったんですが、以下のようにしても出ません・・・(^_^;)
初歩的なことでお恥ずかしいのですが、教えてください。
33A5ってコードを指定するのが違うんでしょうか?立方メートルなんですが・・

Option Explicit

Dim B() As Byte
Dim S   As String
Dim R   As Long
Private Declare Function TextOutW Lib "GDI32.DLL" (ByVal hDC As Long, ByVal nXStart As Long, _
                                                   ByVal nYStart As Long, lpString As Byte, _
                                                   ByVal cbString As Long) As Long

Sub AAA()

   S = "33A5"
   B = S

   R = TextOutW(Printer.hDC, 10, 10, B(0), Len(S))
   
End Sub

編集 削除
魔界の仮面弁士  2004-03-29 17:23:01  No: 82750  IP: [192.*.*.*]

> 33A5ってコードを指定するのが違うんでしょうか?
上記のコードを生かすなら、
  S = ChrW(&H33A5)
のようになるかと。

>  S = "33A5"
これだと、 「33A5というコードの文字」ではなく、
「33A5という文字列」が出力されてしまいますよね。

編集 削除
ぽこ  2004-03-29 18:48:34  No: 82751  IP: [192.*.*.*]

ありがとうございます。解決しました。(^_^;)
ホントに初歩的な抜けでした・・お恥ずかしいです。

編集 削除
ぽこ  2004-03-30 09:38:48  No: 82752  IP: [192.*.*.*]

あらっっ・・
FormのPictureBoxには表示されるのに
デバイスにPrinterを指定すると何も出てこない・・

編集 削除
ぽこ  2004-03-30 15:19:13  No: 82753  IP: [192.*.*.*]

うむ〜〜っわからない・・
すみません、教えていただけませんでしょうか・・<(_ _)>

編集 削除
ぽこ  2004-03-30 15:21:17  No: 82754  IP: [192.*.*.*]

DeviceオブジェクトはオプションボタンでFormのPictureBoxと
Printerを切り替えています。


Option Explicit

Dim S   As String
Dim R   As Long
Dim b() As Byte

Public Device As Object

Private Declare Function TextOutW Lib "GDI32.DLL" (ByVal hDC As Long, _
                                                   ByVal nXStart As Long, _
                                                   ByVal nYStart As Long, _
                                                         lpString As Byte, _
                                                   ByVal cbString As Long) As Long

Sub TEST()

  S = ChrW("&H" & unicodeprint1.Text1)
  b = S

  Device.FontSize = 350
  Device.FontName = "Arial Unicode MS"
  R = TextOutW(Device.hDC, 1, -80, b(0), Len(S))

End Sub

編集 削除