PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
4604 99/01/14 16:52:05 RE(2):ありがとうございました取れました。 By のりさん
4598 99/01/14 12:54:30 RE(1):PB6: Printerのデバイス コンテキスト ハンドルの取得方法 By にしやん
4592 99/01/14 11:37:25 PB6: Printerのデバイス コンテキスト ハンドルの取得方法 By のりさん

カテゴリ:スクリプトの記述
日付:1999年01月14日 12:54 発信者:にしやん
題名:RE(1):PB6: Printerのデバイス コンテキスト ハンドルの取得方法

のりさん、こんにちは。

>こんにちは
>現在帳票を印刷するプログラムを作成しています。
>その中でバーコード作成OLEを使用する予定なのですがこのOLEにPrinterのハンドルを渡さなければいけません。
>PBのHandle関数では取ってこれなかったのでWindows APIで取ってくるようなものがないか探したのですが
>勉強不足なもので見つけることができませんでした。
>どなたかご教示下さいよろしくお願いします。

プリンタのデバイスコンテキストは、PrintDlg で取得できます。

構造体
PRINTDLG
 UnsignedLong lStructSize
 UnsignedLong hwndOwner
 UnsignedLong hDevMode
 UnsignedLong hDevNames
 UnsignedLong hdc
 UnsignedLong flags
 UnsignedInteger nFromPage
 UnsignedInteger nToPage
 UnsignedInteger nMinPage
 UnsignedInteger nMaxPage
 UnsignedInteger nCopies
 UnsignedLong hInstance
 UnsignedLong lCustData
 UnsignedLong lpfnPrintHook
 UnsignedLong lpfnSetupHook
 UnsignedLong lpPrintTemplateName
 UnsignedLong lpSetupTemplateName
 UnsignedLong hPrintTemplate
 UnsignedLong hSetupTemplate

外部関数
FUNCTION Boolean PrintDlg(REF PRINTDLG Printdlg) LIBRARY \"COMDLG32.DLL\" ALIAS FOR \"PrintDlgA\"
FUNCTION Boolean DeleteDC(UnsignedLong hdc) LIBRARY \"GDI32.DLL\"
FUNCTION UnsignedLong GlobalFree(UnsignedLong hMem) LIBRARY \"KERNEL32.DLL\"

スクリプト
//定数宣言
CONSTANT UnsignedLong PD_RETURNDC = 256
CONSTANT UnsignedLong PD_RETURNDEFAULT = 1024

//変数宣言
PRINTDLG pd

//構造体設定
pd.lStructSize = 66
pd.hwndOwner = Handle(parent)
pd.Flags = PD_RETURNDEFAULT + PD_RETURNDC

IF PrintDlg(pd) THEN
  //pd.hdc にプリンタのデバイスコンテキストが入っている
ELSE
  //エラー
  RETURN
END IF

//終了する前にメモりを解放する(忘れるとメモリリークの原因になります)
GlobalFree(pd.hDevMode)
GlobalFree(pd.hDevNames)
DeleteDC(pd.hdc)

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.