フレームを表示

L_PaintRgnDCCallback

フレームを表示

#include "l_bitmap.h"

L_LTDIS_API L_INT L_PaintRgnDCCallbackpCallbackData、pBitmap、pSrc、pClipSrc、pDst、pClipDst、uROP3

pPAINTCALLBACKDATA pCallbackData;

/* コールバックデータ構造へのポインター*/

pBITMAPHANDLE pBitmap;

/* ビットマップハンドルへのポインター*/

L_RECT *pSrc;

/* ディスプレイソース長方形へのポインター*/

L_RECT *pClipSrc;

/* ディスプレイソースクリッピング長方形へのポインター*/

L_RECT *pDst;

/* ディスプレイデスティネーション四角形へのポインター*/

L_RECT *pClipDst;

/* ディスプレイデスティネーションクリッピング長方形へのポインター*/

L_UINT32 uROP3;

/* 表示のためのウィンドウROP code*/

描画コールバックを使用してビットマップリージョンを描画します。この関数はL_PaintDCCallbackと同じに機能しますが、ビットマップリージョンだけは描画されます。

パラメーター

説明

pCallbackData

デバイスコンテキスト(DC)と描画コールバックを格納している構造体へのポインタ。デバイスコンテキストのマッピング方式は、MM_TEXTでなければなりません。

pBitmap

リージョンを持っているビットマップを参照文に引用しているビットマップハンドルへのポインター。

pSrc

ディスプレイソースとしての使い方にビットマップの部分を指定するWindows RECT構造体へのポインター。

 

RECT構造体の座標は、ビットマップに対する相対座標です。デフォルトを使うためにNULLを渡すことができます。そして、それはビットマップと一致します。

pClipSrc

描画するためにディスプレイソースの部分を指定するWindows RECT構造体へのポインター。通常、ソースビットマップの一部が変更したとき、これが表示を更新するために使われます。

 

RECT構造体の座標は、ビットマップに対する相対座標です。デフォルトを使うためにNULLを渡すことができます。そして、それはビットマップと一致します。

pDst

ソース長方形がどのように拡大縮小されるか、そして、imageがどのようにデバイスコンテキストで配置されるか決定するWindows RECT構造体へのポインター。

 

RECT構造体の座標は、デバイスコンテキストに対する相対座標です。デフォルトが、このパラメーターのためにありません。RECT構造体を指定しなければなりません。

pClipDst

描画するためにディスプレイ長方形の部分を指定するWindows RECT構造体へのポインター。通常、ユーザーが別のウィンドウを移動する場合など、表示面の変更を更新するために使用します。覆い隠された画像の一部が明らかになります。

 

RECT構造体の座標は、デバイスコンテキストに対する相対座標です。デフォルトを使うためにNULLを渡すことができます。そして、それはデバイスコンテキストと一致します。しかし、ほとんどの場合、Windows WM_PAINTメッセージによって返される長方形を使わなければなりません。

uROP3

デスティネーション四角形はどうか決定するWindows ROP codeが、更新しました。このパラメーターは、Windowsビットブリット関数と同じコードをとります。通常の描画のために、SRCCOPYを使います。

戻り値

SUCCESS

関数は成功しました。

<1

エラーが発生しました。リターンコードを参照してください

コメント

PAINTCALLBACKDATA構造体で保存されるならば、描画しているHDC。「どのGDI関数をオーバーライドすることができるかに関する詳細のためのそのドキュメンテーション」を参照してください。

必須のDLLとライブラリ

LTDIS

ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください

プラットホーム

Win32 x 64

参照

関数:

L_FrameBitmapRgn, L_PaintDC, L_PaintDCBufferCallback,L_WindowLevel, L_RectToBitmap, L_RectFromBitmap, L_PaintDCBufferCallback, L_PaintDCCallback, L_PaintDCCMYKArray, L_PaintDCOverlay, L_PaintDCOverlayCallback, L_PaintRgnDC,  L_PaintRgnDCBuffer, L_PaintRgnDCBufferCallback, L_PaintRgnDCEffect, L_RectToBitmap, L_RectFromBitmap

構造体:

PAINTCALLBACKDATA

トピック:

ラスター画像は機能します:画像の表示

 

カスタムコールバックを用いた描画

 

ラスター画像は機能します:パレット

 

ビットマップリージョンの定義と使用

 

パレット変更の処理

 

透明度の実装

 

ラスター画像は機能します:カスタム描画の使用

 

サポート関数:コールバック

サンプル

このサンプルは、ビットマップのパレットを用いてビットマップの現在のリージョンを描画するために、必要最小限を示します。

L_INT PaintRgnDCCallbackExample(L_HWND hWnd, pBITMAPHANDLE pBitmap)
{
   L_INT       nRet;
   HDC         hdc;                    /* Device context for the current window */
   RECT        rcLeadDest;             /* Destination rectangle for painting */
   HPALETTE    hSavedPalette = NULL;   /* Temporary copy of the current system palette */
   HPALETTE    hOurPalette = NULL;     /* The palette that we will use to paint */
   PAINTCALLBACKDATA PaintCallbackData;/* Paint callback data structure */

   /* Get the device context */
   hdc = GetDC (hWnd);
   /* Set the destination rectangle to be the same as the bitmap.
   Other painting rectangles can take defaults. */
   SetRect(&rcLeadDest, 0, 0, BITMAPWIDTH(pBitmap), BITMAPHEIGHT(pBitmap));
   /* Create the palette that we will use to paint */
   hOurPalette = L_CreatePaintPalette (hdc, pBitmap);
   /* Select our palette and save the old one */
   hSavedPalette = SelectPalette (hdc, hOurPalette, FALSE);
   /* Realize our palette */
   RealizePalette (hdc);
   
   /* Initialize the paint callback data structure */
   memset(&PaintCallbackData, 0, sizeof(PaintCallbackData));
   PaintCallbackData.uStructSize = sizeof(PAINTCALLBACKDATA);
   PaintCallbackData.pDisplay = hdc;

   /* set the paint callbacks for the GDI functions you are overriding here

        PaintCallbackData.pIsCompatibleDC = MyIsCompatibleDC;
        PaintCallbackData.pStretchDIBits = MyStretchDIBits;
        etc
   */

   /* Paint the image */
   nRet = L_PaintRgnDCCallback(&PaintCallbackData, /* Callback data structure */
                 pBitmap,     /* Bitmap handle */
                 NULL,        /* Default source rectangle */
                 NULL,        /* Default source clip area */
                 &rcLeadDest, /* Destination rectangle */
                 NULL,        /* Default destination clipping rectangle */
                 SRCCOPY);    /*  ROP3 code for a Normal Paint */
   if(nRet != SUCCESS)
      return nRet;

   /* Restore the old palette */
   SelectPalette (hdc, hSavedPalette, FALSE);
   /* Release the device context */
   ReleaseDC(hWnd, hdc);
   return SUCCESS;
}