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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.