typedef struct _PAINTCALLBACKDATA
{
L_UINT uStructSize;
L_UINT32 uFlags;
L_VOID *pDisplay;
L_VOID *pUserData;
PAINTCALLBACK_GETDEVICECAPS pGetDeviceCaps;
PAINTCALLBACK_GETMAPMODE pGetMapMode;
PAINTCALLBACK_SETSTRETCHBLTMODE pSetStretchBltMode;
PAINTCALLBACK_INTERSECTCLIPRECT pIntersectClipRect;
PAINTCALLBACK_SAVEDC pSaveDC;
PAINTCALLBACK_RESTOREDC pRestoreDC;
PAINTCALLBACK_STRETCHDIBITS pStretchDIBits;
PAINTCALLBACK_SETVIEWPORTORGEX pSetViewportOrgEx;
PAINTCALLBACK_GETVIEWPORTORGEX pGetViewportOrgEx;
PAINTCALLBACK_EXTSELECTCLIPRGN pExtSelectClipRgn;
PAINTCALLBACK_SELECTPALETTE pSelectPalette;
PAINTCALLBACK_REALIZEPALETTE pRealizePalette;
PAINTCALLBACK_GETGRAPHICSMODE pGetGraphicsMode;
PAINTCALLBACK_GETWORLDTRANSFORM pGetWorldTransform;
PAINTCALLBACK_ISCOMPATIBLEDC pIsCompatibleDC;
PAINTCALLBACK_CONVERTLINE pConvertLine;
PAINTCALLBACK_GETDIBINFO pGetDibInfo;
PAINTCALLBACK_PREPAINT pPrePaint;
PAINTCALLBACK_POSTPAINT pPostPaint;
PAINTCALLBACK_FILLRECT pFillRect;
} PAINTCALLBACKDATA, * pPAINTCALLBACKDATA;
PAINTCALLBACKDATA構造体は、PAINTCALLBACKDATA(* pPAINTCALLBACKDATA)の形式を説明します;
PAINTCALLBACKDATA構造体は、カスタム描画のために使われるコールバックを格納します。
以下の関数は、この構造体を利用します:
メンバ |
説明 |
|
uStructSize |
PAINTCALLBACKDATA構造体のサイズ。これは、sizeof(PAINTCALLBACKDATA)でなければなりません。 |
|
uFlags |
以下のどれでも、フラグを立てます。(1つ以上の値を指定するためにビットごとのORを使うことができます。)。 |
|
|
値 |
意味 |
|
PAINTCALLBACKDATA_NO_INDEXEDPAINT |
[0x00000001]、インデックスド描画を使いません。パレットカラーは、RGBカラー(パレットインデックスでない)として渡されなければなりません。 |
pDisplay |
描画するデバイスコンテキスト。事前定義コールバックは、有効なDCハンドルであるこの値を期待します。しかし、すべてのコールバックを向け直すならば、これは欲しい任意の構造体へのポインターでありえます。この値は、pDisplayパラメーターをとるすべての描画コールバックに渡されます。 |
|
pUserData |
すべてのコールバックに渡されるユーザー定義の構造体へのポインターは、pUserDataパラメーターとして機能します。 |
|
pGetDeviceCaps |
GetDeviceCaps GDI関数を置換する関数へのポインター。 |
|
pGetMapMode |
GetMapMode GDI関数を置換する関数へのポインター。 |
|
pSetStretchBltMode |
SetStretchBltMode GDI関数を置換する関数へのポインター。 |
|
pIntersectClipRect |
IntersectClipRect GDI関数を置換する関数へのポインター。 |
|
pSaveDC |
SaveDC GDI関数を置換する関数へのポインター。 |
|
pRestoreDC |
RestoreDC GDI関数を置換する関数へのポインター。 |
|
pStretchDIBits |
StretchDIBits GDI関数を置換する関数へのポインター。 |
|
pSetViewportOrgEx |
SetViewportOrgEx GDI関数を置換する関数へのポインター。 |
|
pGetViewportOrgEx |
GetViewportOrgEx GDI関数を置換する関数へのポインター。 |
|
pExtSelectClipRgn |
ExtSelectClipRgn GDI関数を置換する関数へのポインター。 |
|
pSelectPalette |
SelectPalette GDI関数を置換する関数へのポインター。 |
|
pRealizePalette |
RealizePalette GDI関数を置換する関数へのポインター。 |
|
pGetGraphicsMode |
GetGraphicsMode GDI関数を置換する関数へのポインター。 |
|
pGetWorldTransform |
GetWorldTransform GDI関数を置換する関数へのポインター。 |
|
pIsCompatibleDC |
DCとビットマップが私のコールバックと互換性を持つかどうかについて決定する関数へのポインター。 |
|
pConvertLine |
表示データに画像データを変換する関数へのポインター。 |
|
pGetDibInfo |
ラスターエンジンに表示データの形式を話す関数へのポインター。pConvertLine関数を提供するならば、この関数は提供されなければなりません。 |
|
pPrePaint |
初期化のために使われることができる関数へのポインター。 |
|
pPostPaint |
クリーンアップのために使われることができる関数へのポインター。 |
|
pFillRect |
FillRect GDI関数を置換する関数へのポインター。 |
コメント
すべてのコールバックを提供する必要はありません。置換することを望まないNULL任意のコールバックに設定することができます。特定のコールバックのためにNULLを渡すならば、デフォルトのGDI関数が使われます。
GDIコールバックのいくらかのためにNULLを渡すならば、pDisplayを有効なHDCハンドルに設定しなければなりません。デフォルトのGDI関数は、HDCハンドルであるpDisplayを期待します。
pIsCompatibeDCを有効な関数ポインターに設定するならば、その関数はDCがコールバックと互換性を持つかどうか決定するために他のどのコールバック関数の前にも呼び出されます。この関数がFALSEを返すならば、他のいかなるコールバックも呼び出されません、そして、デフォルトのGDI関数が使われます。
pConvertLineを有効な関数ポインターに設定するならば、pGetDibInfoも有効な関数ポインターに設定しなければならないので、LEADTOOLSは描画関数によって期待される画像データの形式を知っています。
pPrePaintを有効な関数ポインターに設定するならば、それはpIsCompatibleDCの後、そして、他のどのコールバックの前にも一度呼び出されます。
pPostPaintを有効な関数ポインターに設定するならば、それは一回任意の他のコールバックというでしょう。
参照
関数: |
L_PaintDCCallback, L_PaintRgnDCCallback, L_PaintDCBufferCallback, L_PaintRgnDCBufferCallback, L_PaintDCOverlayCallback |
トピック: |