tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: CreateDCの引数について
投稿日: 2008/08/20(Wed) 23:06
投稿者蒼月
魔界の仮面弁士さん
ご指摘、ありがとうございます。

> > CreateDC("AAAA", vbNullString, 0, 0)
> しかし、これは問題です。
>
> (1) 第一引数の "AAAA" が意味を為しているでしょうか。第一引数には、
>  プリンタ名 (もしくは、vbNullString / "WINSPOOL" / "DISPLAY" )で
>  なければなりませんが、"AAAA" というプリンタが本当にあるのでしょうか?
今回は、プリンタ名というのがどれを指しているのかがよくわからず、
windowsのプリンタとFAXの項目に表示された名前がプリンタ名なのでは?
という予測の元それをそのまま使用しました。
(例では、"AAAA"となっていますが、実際はその表示名を入れています。)

> (2) 画面への描画の場合には、第二引数に(ByVal の)vbNullString を指定する事も
>  ありますが、プリンタへの出力目的であれば、第二引数も指定する必要があります。
第一引数と第二引数の意味の理解があいまいだったので、今回の使い方の場合は、両方の引数が、NULL以外の文字となることは無いと思い込んでしまっていました。
(逆を言えば、どちらかは必ずNULLでないといけないと思い込んでいました。)

> (3) 第四引数に、0 を渡してはいけません。ByRef Any に対して 0 を指定すると、
>  「NULL 参照」を指定しているのではなく、「0 という 16bit整数値への参照」に
>  なってしまいます。NULL 参照を渡したいなら、ByVal 0& とせねばなりません。
0を渡しているサンプルコードと、0&を渡しているサンプルコードがあり、
違いは疑問に思っていたのですが、とりあえず、まずは印刷ができるようにしたかったため、その違いについては後回しにしていました。

魔界の仮面弁士さんの助言は本当に勉強になります。
ありがとうございました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。