CBitmap
クラス
Windows のグラフィック デバイス インターフェイス (GDI: Graphics Device Interface) のビットマップをカプセル化したもので、ビットマップを操作するためのメンバー関数を提供します。
構文
class CBitmap : public CGdiObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CBitmap::CBitmap |
CBitmap オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CBitmap::CreateBitmap |
指定した幅、高さ、およびビット パターンを持つデバイス依存メモリ ビットマップを使用して、 オブジェクトを初期化します。 |
CBitmap::CreateBitmapIndirect |
構造体で指定された幅、高さ、ビット パターン (指定されている場合) を使用して、ビットマップを使用して オブジェクトを初期化 BITMAP します。 |
CBitmap::CreateCompatibleBitmap |
指定したデバイスと互換性を持つオブジェクトをビットマップで初期化します。 |
CBitmap::CreateDiscardableBitmap |
指定したデバイスと互換性のある破棄可能なビットマップを使用して、 オブジェクトを初期化します。 |
CBitmap::FromHandle |
ビットマップに対するハンドルを指定CBitmap すると、 オブジェクトへのポインター WindowsHBITMAP します。 |
CBitmap::GetBitmap |
構造体にビットマップに BITMAP 関する情報を入力します。 |
CBitmap::GetBitmapBits |
指定したビットマップのビットを、指定したバッファーにコピーします。 |
CBitmap::GetBitmapDimension |
ビットマップの幅と高さを返します。 高さと幅は、メンバー関数によって以前に設定されたと SetBitmapDimension 見なされます。 |
CBitmap::LoadBitmap |
アプリケーションの実行可能ファイルから名前付きビットマップ リソースを読み込み、ビットマップを オブジェクトにアタッチして、 オブジェクトを初期化します。 |
CBitmap::LoadMappedBitmap |
ビットマップを読み込み、色を現在のシステムカラーにマップします。 |
CBitmap::LoadOEMBitmap |
定義済みのオブジェクトをビットマップに読み込Windowsオブジェクトにビットマップをアタッチすることで、 オブジェクトを初期化します。 |
CBitmap::SetBitmapBits |
ビットマップのビットを、指定したビット値に設定します。 |
CBitmap::SetBitmapDimension |
ビットマップに幅と高さを 0.1 mm 単位で割り当てる。 |
パブリック演算子
名前 | 説明 |
---|---|
CBitmap::operator HBITMAP |
CBitmap オブジェクトにアタッチされている Windows ハンドルを返します。 |
解説
オブジェクトを使用するには CBitmap
、 オブジェクトを構築し、初期化メンバー関数のいずれかを使用してビットマップ ハンドルをオブジェクトにアタッチしてから、オブジェクトのメンバー関数を呼び出します。
のようなグラフィック オブジェクトの使用の詳細については、「グラフィック CBitmap
オブジェクト」 を参照してください。
継承階層
CBitmap
必要条件
ヘッダー:afxwin.h
CBitmap::CBitmap
CBitmap
オブジェクトを構築します。
CBitmap();
解説
結果のオブジェクトは、初期化メンバー関数のいずれかを使用して初期化する必要があります。
CBitmap::CreateBitmap
指定した幅、高さ、ビット パターンに設定されている、デバイス依存のメモリ ビットマップを初期化します。
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
パラメーター
nWidth
ビットマップの幅 (ピクセル単位) を指定します。
nHeight
ビットマップの高さ (ピクセル単位) を指定します。
nPlanes
ビットマップ内でのカラー プレーンの数を指定します。
nBitcount
表示ピクセルごとのカラー ビット数を指定します。
lpBits
初期のビットマップのビット値を含むバイト配列を指します。 の場合、 NULL
新しいビットマップは初期化されていない状態で残されます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
カラー ビットマップの場合、 nPlanes
パラメーターまたは nBitcount
パラメーターを 1 に設定する必要があります。 両方のパラメーターを 1 に設定すると、 CreateBitmap
によってモノクロのビットマップが作成されます。
ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、 を使用して "メモリ デバイス コンテキスト" CDC::SelectObject
CDC::BitBlt
の現在のビットマップとして選択し、 関数を使用して互換性のあるデバイス コンテキストにコピーできます。
CBitmap
関数によって作成された CreateBitmap
オブジェクトでの作業終了後、デバイス コンテキスト外のビットマップを最初に選択し、次に CBitmap
オブジェクトを削除します。
詳細については、 構造体の フィールドの説明 bmBits
を参照 BITMAP
してください。 構造体 BITMAP
は、メンバー関数の下に CBitmap::CreateBitmapIndirect
記述されます。
CBitmap::CreateBitmapIndirect
が指す構造体で指定された幅、高さ、ビット パターン (指定されている場合) を持つビットマップを初期化します lpBitmap
。
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
パラメーター
lpBitmap
ビットマップに関 BITMAP
する情報を含む 構造体をポイントします。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
CDC::SelectObject
CDC::BitBlt
CDC::StretchBlt
ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、 を使用してメモリ デバイス コンテキストの現在のビットマップとして選択し、 関数または 関数を使用して互換性のあるデバイス コンテキストにコピーできます。 (関数 CDC::PatBlt
は、現在のブラシのビットマップをディスプレイ デバイス コンテキストに直接コピーできます)。
パラメーターがBITMAP
指すlpBitmap
GetObject
構造体が 関数を使用して入力されている場合、ビットマップのビットは指定されていません。ビットマップは初期化されていません。 ビットマップを初期化するためにCDC::BitBlt
SetDIBits
CGdiObject::GetObject
、アプリケーションは や などの関数を使用して、 の最初のパラメーターで識別されたビットマップから で作成されたビットマップにビットをコピーできます。CreateBitmapIndirect
関数を使用して作成された CBitmap
オブジェクト CreateBitmapIndirect
を終了したら、まずデバイス コンテキストからビットマップを選択してから、 オブジェクトを削除 CBitmap
します。
CBitmap::CreateCompatibleBitmap
で指定されたデバイスと互換性のあるビットマップを初期化します pDC
。
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
パラメーター
pDC
デバイス コンテキストを指定します。
nWidth
ビットマップの幅 (ピクセル単位) を指定します。
nHeight
ビットマップの高さ (ピクセル単位) を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ビットマップは、指定されたデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位のビット形式を持ちます。 これは、 で指定されたメモリ デバイスと互換性のあるメモリ デバイスの現在のビットマップとして選択できます pDC
。
が pDC
メモリ デバイス コンテキストの場合、返されるビットマップの形式は、そのデバイス コンテキストで現在選択されているビットマップと同じです。 "メモリ デバイス コンテキスト" は、表示画面を表すメモリ ブロックです。 互換性のあるデバイスの実際のディスプレイ画面にイメージをコピーする前に、イメージをメモリ内に準備するために使用できます。
メモリ デバイス コンテキストが作成されると、GDI は自動的に白黒ストック ビットマップを選択します。
CreateCompatibleBitmap
カラー メモリ デバイス コンテキストでは色または白黒のビットマップを選択できます。ただし、関数によって返されるビットマップの形式は常に同じとは限りませんが、非メモリ デバイス コンテキストの互換性のあるビットマップの形式は常にデバイスの形式になります。
関数を使用して作成された CBitmap
オブジェクト CreateCompatibleBitmap
を使用して完了したら、まずデバイス コンテキストからビットマップを選択してから、 オブジェクトを削除 CBitmap
します。
CBitmap::CreateDiscardableBitmap
で識別されるデバイス コンテキストと互換性のある破棄可能なビットマップを初期化します pDC
。
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
パラメーター
pDC
デバイス コンテキストを指定します。
nWidth
ビットマップの幅 (ビット単位) を指定します。
nHeight
ビットマップの高さ (ビット) を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ビットマップは、指定されたデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位のビット形式を持ちます。 アプリケーションは、 で指定されたビットマップと互換性のあるメモリ デバイスの現在のビットマップとして、このビットマップを選択できます pDC
。
Windowsアプリケーションが表示コンテキストに選択していない場合にのみ、この関数によって作成されたビットマップを破棄できます。 ビットマップWindowsCDC::SelectObject
選択されていないときにビットマップを破棄し、アプリケーションが後で選択を試みる場合、関数は NULL を返します。
関数を使用して作成された CBitmap
オブジェクト CreateDiscardableBitmap
を使用して完了したら、まずデバイス コンテキストからビットマップを選択してから、 オブジェクトを削除 CBitmap
します。
CBitmap::FromHandle
GDI ビットマップへのハンドルをCBitmap
指定すると、 オブジェクトへのポインター Windows返します。
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
パラメーター
hBitmap
GDI ビットマップWindows指定します。
戻り値
成功した場合は オブジェクト CBitmap
へのポインター。それ以外の場合は NULL
。
解説
オブジェクトが CBitmap
ハンドルにまだアタッチされていない場合は、一時 CBitmap
オブジェクトが作成され、アタッチされます。 この一 CBitmap
時オブジェクトは、アプリケーションのイベント ループで次回アイドル時間が発生し、その時点ですべての一時グラフィック オブジェクトが削除されるまで有効です。 もう 1 つの言い方は、一時オブジェクトが 1 つのウィンドウ メッセージの処理中にのみ有効であるという言い方です。
CBitmap::GetBitmap
アタッチされたビットマップのイメージ プロパティを取得します。
int GetBitmap(BITMAP* pBitMap);
パラメーター
pBitMap
イメージのプロパティ BITMAP
を受け取る 構造体へのポインター。 このパラメーターは NULL
にすることはできません。
戻り値
メソッドが成功した場合は 0 以外、それ以外の場合は 0。
解説
CBitmap::GetBitmapBits
アタッチされたビットマップのビット パターンを指定したバッファーにコピーします。
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
パラメーター
dwCount
バッファーにコピーするバイト数。
lpBits
ビットマップを受け取るバッファーへのポインター。
戻り値
メソッドが成功した場合にバッファーにコピーされたバイト数。それ以外の場合は 0。
解説
を使用 CBitmap::GetBitmap
して、必要なバッファー サイズを決定します。
CBitmap::GetBitmapDimension
ビットマップの幅と高さを返します。
CSize GetBitmapDimension() const;
戻り値
ビットマップの幅と高さ (0.1 mm 単位)。 高さは オブジェクトのメンバー cy
内で CSize
、幅はメンバー内 cx
です。 ビットマップの幅と高さが を使用して設定されていない場合 SetBitmapDimension
、戻り値は 0 です。
解説
高さと幅は、メンバー関数を使用して以前に設定されたと SetBitmapDimension
見なされます。
CBitmap::LoadBitmap
アプリケーションの実行可能ファイルから、 で指定された lpszResourceName
ビットマップ リソース、または ID nIDResource
番号で識別されるビットマップ リソースを読み込む。
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
パラメーター
lpszResourceName
ビットマップ リソースの名前を含む null で終える文字列をポイントします。
nIDResource
ビットマップ リソースのリソース ID 番号を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
読み込まれたビットマップが オブジェクトにアタッチ CBitmap
されます。
で識別されたビットマップが lpszResourceName
存在しない場合、またはビットマップを読み込むのに十分なメモリが存在しない場合、関数は 0 を返します。
関数を使用してCGdiObject::DeleteObject
、関数によって読LoadBitmap
CBitmap
み込まれたビットマップを削除できます。または、デストラクターによってオブジェクトが削除されます。
注意事項
オブジェクトを削除する前に、デバイス コンテキストで選択されていない必要があります。
次のビットマップは、バージョン 3.1 Windowsに追加されました。
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
これらのビットマップは、バージョン 3.0 以前の Windows ドライバーでは見つかりません。 ビットマップの完全な一覧とその外観の表示については、SDK のWindowsしてください。
CBitmap::LoadMappedBitmap
ビットマップを読み込み、色を現在のシステム カラーにマップするには、このメンバー関数を呼び出します。
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
パラメーター
nIDBitmap
ビットマップ リソースの ID。
nFlags
ビットマップのフラグ。 0 または を指定できます CMB_MASKED
。
lpColorMap
ビットマップのマップ COLORMAP
に必要な色情報を含む 構造体へのポインター。 このパラメーターが の場合 NULL
、関数は既定のカラー マップを使用します。
nMapSize
が指すカラー マップの数 lpColorMap
。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
既定では、 は LoadMappedBitmap
ボタン グリフで一般的に使用される色をマップします。
マップされたビットマップの作成の詳細については、Windows SDK CreateMappedBitmap
COLORMAP
の関数と構造体に関するページWindowsしてください。
CBitmap::LoadOEMBitmap
オブジェクトで使用される定義済みのビットマップを読みWindows。
BOOL LoadOEMBitmap(UINT nIDBitmap);
パラメーター
nIDBitmap
定義済みのビットマップの ID Windows。 指定できる値は、 から次のとおりです WINDOWS.H
。
OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKBOXES
OBM_CLOSE
OBM_COMBO
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI
OBM_MNARROW
OBM_OLD_CLOSE
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED
OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
で始まるビットマップ名はOBM_OLD
、3.0 より前のバージョンWindowsで使用されるビットマップを表します。
定数を使用するには、 を OEMRESOURCE
含む前 WINDOWS.H
に定数を定義する必要 OBM_
があります。
CBitmap::operator HBITMAP
CBitmap
オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。
operator HBITMAP() const;
戻り値
成功した場合は、オブジェクトによって CBitmap
表される Windows GDI オブジェクトへのハンドル。それ以外 NULL
の場合は。
解説
この演算子は、HBITMAP
オブジェクトの直接使用をサポートするキャスト演算子です。
グラフィックオブジェクトの使用方法の詳細については、「Windows SDK のグラフィックオブジェクト」を参照してください。
CBitmap::SetBitmapBits
ビットマップのビットを、によって lpBits
指定されたビット値に設定します。
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
パラメーター
dwCount
が lpBits
指すバイト数を指定します。
lpBits
オブジェクトに CBitmap
コピーされるピクセル値を格納している配列を BYTE
指します。 ビットマップがイメージを正しく表示できるようにするには、インスタンスの CBitmap
作成時に指定された高さ、幅、および色深度の値に合わせて値を書式設定する必要があります。 詳細については、「CBitmap::CreateBitmap
」を参照してください。
戻り値
ビットマップビットの設定に使用されるバイト数。関数が失敗した場合は0。
CBitmap::SetBitmapDimension
0.1-ミリメートル単位でビットマップに幅と高さを割り当てます。
CSize SetBitmapDimension(
int nWidth,
int nHeight);
パラメーター
nWidth
ビットマップの幅を指定します (0.1 ミリメートル単位)。
nHeight
ビットマップの高さを指定します (0.1 ミリメートル単位)。
戻り値
前のビットマップのサイズ。 高さは、オブジェクトの CSize
メンバー変数に cy
あり、width はメンバー変数に含ま cx
れています。
解説
GDI は、アプリケーションがメンバー関数を GetBitmapDimension
呼び出したときにこれらの値を返さない限り、これらの値を使用しません。