お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"DrawDibDraw (宣言)"

この発言に対し以下のコメントが寄せられています
#01143 Fermion さん DrawDibDraw (サンプル)
#01145 Fermion さん DrawDibDraw (サンプル)

■説明  DrawDibDraw による描画のサンプルで使用する APIを宣言したユニット です。  以下を切り取り "DrawDibAPI.pas" というファイル名で保存して下さい。 ■その他  各関数の詳細は、API のヘルプ、または次のホームページなどでご確認 下さい。   http://search.microsoft.com/japan/SearchMS.asp ■ユニット //========================================================================= unit DrawDibAPI; interface uses Windows; type HDRAWDIB = THandle; {* DrawDib DC Handle *} const {************************************************************************** DrawDib Flags **************************************************************************} DDF_0001 = $0001; {* ;Internal *} DDF_UPDATE = $0002; {* re-draw the last DIB *} DDF_SAME_HDC = $0004; {* HDC same as last call (all setup) *} DDF_SAME_DRAW = $0008; {* draw params are the same *} DDF_DONTDRAW = $0010; {* dont draw frame, just decompress *} DDF_ANIMATE = $0020; {* allow palette animation *} DDF_BUFFER = $0040; {* always buffer image *} DDF_JUSTDRAWIT = $0080; {* just draw it with GDI *} DDF_FULLSCREEN = $0100; {* use DisplayDib *} DDF_BACKGROUNDPAL = $0200; {* Realize palette in background *} DDF_NOTKEYFRAME = $0400; {* this is a partial frame update, hint *} DDF_HURRYUP = $0800; {* hurry up please! *} DDF_HALFTONE = $1000; {* always halftone *} DDF_2000 = $2000; {* ;Internal *} DDF_PREROLL = DDF_DONTDRAW; {* Builing up a non-keyframe *} DDF_SAME_DIB = DDF_SAME_DRAW; DDF_SAME_SIZE = DDF_SAME_DRAW; {************************************************************************** DrawDib functions (一部のみ) **************************************************************************} {-------------------------------------------------------------------------- DrawDibOpen DrawDib ライブラリを開き、描画のために DrawDib デバイスコンテキスト を作成する。 --------------------------------------------------------------------------} function DrawDibOpen: HDRAWDIB; stdcall; {-------------------------------------------------------------------------- DrawDibClose DrawDib DCを閉じ、DrawDib がそれに割り当てたリソースを解放する。 パラメータ hdd DrawDib デバイスコンテキストのハンドルを指定。 --------------------------------------------------------------------------} function DrawDibClose( hdd: HDRAWDIB ): BOOL; stdcall; {-------------------------------------------------------------------------- DrawDibRealize 指定された DC と共に使う DrawDib DC のパレットを実体化する。 パラメータ hdd DrawDib DC のハンドルを指定。 hdc パレットが入った DC のハンドルを指定。 fBackground 背景パレットのフラグを指定。この値が 0以外の場合、パレットは背景 パレット。この値が 0で DC がウィンドウにアタッチされている場合は、 ウィンドウが入力フォーカスを受けると論理パレットが前景パレットに なる(ウィンドウクラススタイルが CS_OWNDC であるか、または GetDC 関数で DC が取得されると、DC はウィンドウにアタッチされる)。 背景パレットに、DrawDib DC のパレットを選択するには、DrawDibDraw 関数を使って DDF_BACKGROUNDPAL フラグをセットする。 --------------------------------------------------------------------------} function DrawDibRealize( hdd: HDRAWDIB; hdc: HDC; fBackground: BOOL ): UINT; stdcall; {-------------------------------------------------------------------------- DrawDibDraw DIB を描画する。 パラメータ hdd DrawDib デバイスコンテキストのハンドル。 hdc デバイスコンテキストのハンドル。 xDst 送信先長方形の左上角の y 座標を MM_TEXT クライアント座標単位で 指定。 yDst 送信先長方形の左上角の y 座標を MM_TEXT クライアント座標単位で 指定。 dxDst 送信先長方形の幅を MM_TEXT クライアント座標単位で指定。 dxDst が -1 の場合は、ビットマップの幅。 dyDst 送信先長方形の高さを MM_TEXT クライアント座標単位で指定。 dyDst が -1 の場合は、ビットマップの高さ。 lpbi イメージフォーマットが入った BITMAPINFOHEADER 構造体のアドレス を指定。DIB の BITMAPINFOHEADER 内のカラーテーブルはそのフォー マットに従い、biHeight メンバは必ず正値。 DrawDibDraw は反転した DIB の描画は行わない。 lpBits ビットマップのビットが格納されているバッファのアドレス。 xSrc 送信元長方形の左上角の x 座標をピクセル単位で指定。 座標 (0,0) は、ビットマップの左上角。 ySrc 送信元長方形の左上角の y 座標をピクセル単位で指定。 dxSrc 送信元長方形の幅をピクセル単位で指定。 dySrc 送信元長方形の高さをピクセル単位で指定。 wFlags 描画に適用されるフラグを指定(上記 DrawDib Flags 参照)。 ※DDF_BACKGROUNDPAL 表示に使われている実際のパレットを変更せず、バックグラウンド で描画に使われているパレットを実体化する。 DDF_SAME_HDC が設定されていない場合だけ有効。 --------------------------------------------------------------------------} function DrawDibDraw( hdd : HDRAWDIB; hdc : HDC; xDst, yDst, dxDst, dyDst: Integer; lpbi : PBitmapInfoHeader; lpBits : Pointer; xSrc, ySrc, dxSrc, dySrc: Integer; wFlags : LongWord ): BOOL; stdcall; {*************************************************************************} implementation {************************************************************************** DrawDib functions (一部のみ) **************************************************************************} function DrawDibOpen; external 'msvfw32.dll' name 'DrawDibOpen'; function DrawDibClose; external 'msvfw32.dll' name 'DrawDibClose'; function DrawDibRealize; external 'msvfw32.dll' name 'DrawDibRealize'; function DrawDibDraw; external 'msvfw32.dll' name 'DrawDibDraw'; {*************************************************************************} end. //========================================================================= 00/7/17(Mon) 00:33pm Fermion [KHF03264]  Original document by Fermion 氏 ID:(KHF03264)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum