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.




